我正在尝试为密码字段创建验证,只允许使用a-zA-Z0-9
字符和.!@#$%^&*()_+-=
。
我似乎掌握不了这个技巧。
当使用regex = /a-zA-Z0-9/g 和 regex = /[a-zA-Z0-9]/
时有什么区别?哪些.!@#$%^&*()_+-=
字符需要转义?
到目前为止,我尝试过的方法是:
var regex = /a-zA-Z0-9!@#\$%\^\&*\)\(+=._-/g
但是没有成功
我正在尝试为密码字段创建验证,只允许使用a-zA-Z0-9
字符和.!@#$%^&*()_+-=
。
我似乎掌握不了这个技巧。
当使用regex = /a-zA-Z0-9/g 和 regex = /[a-zA-Z0-9]/
时有什么区别?哪些.!@#$%^&*()_+-=
字符需要转义?
到目前为止,我尝试过的方法是:
var regex = /a-zA-Z0-9!@#\$%\^\&*\)\(+=._-/g
但是没有成功
var regex = /^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]+$/g
应该有效
另外可能希望有最小长度,例如6个字符
var regex = /^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]{6,}$/g
var regex = /^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]+$/g; regex.test('happy,');
返回 false。参考链接https://tools.oratory.com/altcodes.html。 - shareef一种更简洁的匹配特殊字符的方法:
/\W|_/g
\W匹配任何非单词字符(字母数字和下划线)。
下划线被认为是一个特殊字符,因此要添加布尔值来匹配特殊字符或_。
ñ
这样的字符也被视为特殊字符,因此请小心处理。 - Christiaan Maks您可以通过测试不合法字符来进行具体化。这会对任何非字母数字和空格的字符返回true:
var specials = /[^A-Za-z 0-9]/g;
return specials.test(input.val());
特殊字符的完整集合:
/[\!\@\#\$\%\^\&\*\)\(\+\=\.\<\>\{\}\[\]\:\;\'\"\|\~\`\_\-]/g
var regular_expression = /^[A-Za-z0-9\!\@\#\$\%\^\&\*\)\(+\=\._-]+$/g
var regularExpression = /^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,}$/;
最少需要 6 个字符,包括数字、字母和特殊字符。
以上写的正则表达式存在一些问题。
这个是完美的。
^[a-zA-Z\d\-_.,\s]+$
此处仅包含允许的特殊字符,并可在逗号后进行扩展。
这个正则表达式对于我来说很有效,用于验证密码:
/[ !"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~]/
// Regex for special symbols
var regex_symbols= /[-!$%^&*()_+|~=`{}\[\]:\/;<>?,.@#]/;
最少8个字符,其中包含至少一个字母、一个数字和一个特殊字符的正则表达式:
/^(?=.*[A-Za-z])(?=.*\d)(?=.*[!@#$%^&*])[A-Za-z\d!@#$%^&*]{8,}$/
ag90:"jNn;fsi./
这样的密码,为什么不能允许呢? - cHao/^(.*\W){3}.*$/
需要至少3个非单词字符...但这并不能回答问题。 :) - cHao