正则表达式,以任意顺序匹配至少两个特殊字符

Regular expression to match at least two special characters in any order

本文关键字:特殊字符 两个 任意 顺序 正则表达式      更新时间:2023-09-26

我必须为密码做jQuery表单验证。

密码至少包含两个特殊字符,且顺序不受限制。我试过用于密码验证的正则表达式,但它不解决两个随机特殊字符可以以任意顺序出现的问题。

我如何使用JavaScript正则表达式?

在不需要的情况下,不必使用遍历。

如果您只需要确保字符串至少有特定集合的2个字符,请使用这种正则表达式(带有否定类以使其更健壮):

/(?:[^`!@#$%^&*'-_=+''/.,]*[`!@#$%^&*'-_=+''/.,]){2}/

看到演示

在javascript中它为我工作:

/(?=(.*[`!@#$%'^&*'-_='+'/'.,]){2})/
var goodtogo = false;
var pass = 'simp!le@';   //example
var times = pass.match(/['''[']'/'(')'+'*'?`!@#$%'^&_=-]/g).length;
if(times >= 2)
    goodtogo = true;

现在我建议你尝试几个密码,如果你发现一个错误或什么,不要犹豫,大声喊回来。

如果您有更多特殊字符,只需将它们添加到match的参数中。

希望能有所帮助。