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

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

我必须对密码进行 jQuery 表单验证。

密码至少应包含两个特殊字符,顺序不限。我试过 Regular Expression for password validation 但它没有解决两个随机特殊字符可以任意顺序出现的问题。

如何使用 JavaScript 正则表达式来实现?

在 javascript 它对我有用:

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

现在我建议您尝试几个密码,如果您发现错误或其他问题,请毫不犹豫地大声回应。

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

希望对您有所帮助。

在不需要的情况下,您不必使用环视。

如果您只需要确保字符串至少包含特定字符集的 2 个字符,请使用这种正则表达式(取反 class 以使其更健壮):

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

demo