Javascript正则表达式

时间:2017-09-08 12:18:58

标签: javascript regex class range character

我经常看到人们使用: [0-9]代替\ d和[A-Za-z0-9_]而不是\ w

使用元字符时,浏览器之间是否存在一些不一致或其他缺点? 我应该使用字符范围而不是相应的元字符吗?

1 个答案:

答案 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