我正在尝试为密码字段创建验证,该字段仅允许a-zA-Z0-9字符和.!@#$%^&*()_+-=
我似乎无法掌握它.
使用时有什么区别,需要转出regex = /a-zA-Z0-9/g and regex = /[a-zA-Z0-9]/哪些字符.!@#$%^&*()_+-=?
我现在尝试的是:
var regex = /a-zA-Z0-9!@#\$%\^\&*\)\(+=._-/g
Run Code Online (Sandbox Code Playgroud)
但没有成功
Ed *_*eal 47
var regex = /^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]+$/g
Run Code Online (Sandbox Code Playgroud)
应该管用
也可能想要最小长度,即6个字符
var regex = /^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]{6,}$/g
Run Code Online (Sandbox Code Playgroud)
小智 12
一种与特殊字符匹配的简单方法:
/\W|_/g
Run Code Online (Sandbox Code Playgroud)
\ W匹配任何不是单词字符的字符(字母数字和下划线).
下划线被认为是一个特殊字符,因此添加布尔值以匹配特殊字符或_
Ber*_*rgi 10
有什么不同?
/[a-zA-Z0-9]/是一个字符类,它匹配类中的一个字符.它由三个范围组成.
/a-zA-Z0-9/ 确实意味着这9个字符的字面顺序.
哪些字符
.!@#$%^&*()_+-=需要被转义?
在一个字符类中,只有减号(如果不是在最后)和抑扬符(如果在开头).在charclass之外,.$^*+()有一个特殊的含义,需要转义才能完全匹配.
只允许
a-zA-Z0-9字符和.!@#$%^&*()_+-=
然后将它们放入一个字符类中,让它们重复并要求通过锚点将整个字符串与它们匹配:
var regex = /^[a-zA-Z0-9!@#$%\^&*)(+=._-]*$/
Run Code Online (Sandbox Code Playgroud)
您可以通过测试无效字符来具体说明。对于非字母数字和空格的任何内容,这将返回 true:
var specials = /[^A-Za-z 0-9]/g;
return specials.test(input.val());
Run Code Online (Sandbox Code Playgroud)
这个怎么样:-
var regularExpression = /^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,}$/;
Run Code Online (Sandbox Code Playgroud)
它将允许至少6个字符,包括数字,字母和特殊字符
以上书面正则表达式存在一些问题。
这很完美。
^[a-zA-Z\d\-_.,\s]+$
Run Code Online (Sandbox Code Playgroud)
此处仅包含允许的特殊字符,并且可以在逗号后扩展。
// Regex for special symbols
var regex_symbols= /[-!$%^&*()_+|~=`{}\[\]:\/;<>?,.@#]/;
Run Code Online (Sandbox Code Playgroud)
完整的特殊字符集:
/[\!\@\#\$\%\^\&\*\)\(\+\=\.\<\>\{\}\[\]\:\;\'\"\|\~\`\_\-]/g
Run Code Online (Sandbox Code Playgroud)
回答你的问题:
var regular_expression = /^[A-Za-z0-9\!\@\#\$\%\^\&\*\)\(+\=\._-]+$/g
Run Code Online (Sandbox Code Playgroud)