我经常看到人们使用: [0-9]代替\ d和[A-Za-z0-9_]而不是\ w
使用元字符时,浏览器之间是否存在一些不一致或其他缺点? 我应该使用字符范围而不是相应的元字符吗?
答案 0 :(得分:1)
没有已知的不一致,但有两个可能的原因。
首先,\d
和\w
在不同的RegExp实现中表示不同的含义。引用regular-expressions.info:
由于经常使用某些字符类,因此需要一系列简写 字符类可用。
\d
是[0-9]
的缩写。多数情况 支持Unicode的flavor,\d
包括所有脚本的所有数字。 值得注意的例外是Java,JavaScript和PCRE。这些Unicode flavor仅与\d
的ASCII数字匹配。
所以,是的,JavaScript在这方面是安全的 - 但是如果你主要处理其他实现(如C#和Python3),你可能根本就没有意识到这一点。
其次,一些开发人员可能更喜欢[0-9]
到\d
只是因为explicit is better than implicit。