使用可能記号:【! # $ % & = + - / * ~ ^ | @ . _ ?】
var newPassword =",";
var reg = /^[a-zA-Z0-9!#$%&=+-/*~^|@._?]+$/;
...
reg.test(newPassword) //竟然是true
应该是逗号也不可以的
着急等
哪里有问题啊
使用可能記号:【! # $ % & = + - / * ~ ^ | @ . _ ?】
var newPassword =",";
var reg = /^[a-zA-Z0-9!#$%&=+-/*~^|@._?]+$/;
...
reg.test(newPassword) //竟然是true
应该是逗号也不可以的
着急等
哪里有问题啊
通过可视化,您可以看到'+' - '/'
,这是什么意思呢,我们分别来获取charCode:
'+'.charCodeAt() // 43
'/'.charCodeAt() // 47
而','.charCodeAt()
的charCode为44,在数字范围内,所以说test为true。
13 回答12.7k 阅读
7 回答1.8k 阅读
3 回答1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
2 回答1.8k 阅读
2 回答1.1k 阅读✓ 已解决
正则中的中括号中的用法
正则的[]中只有 -和^是特殊语义的。
你的之所以为真,是因为 区间符-连接了 +和/ ,而逗号正好在这个区间内(很巧吧)。
只是对中括号中有特殊语义的 -字符和 ^字符还原字符本意就行。

你也可以使用正则铁路图可视化查看
^[a-zA-Z0-9!#$%&=+-/*~^|@._?]+$
正则匹配到的内容: