【发布时间】:2013-12-30 22:19:44
【问题描述】:
正则表达式上的 javscript documentation at MDN 声明:
\w 匹配任何字母数字字符,包括下划线。等价于 [A-Za-z0-9_]
考虑到这一点,为什么我会以这种方式看到一些代码:[\w]。这只是冗长的坏习惯吗? JavaScript 明确声明\w 等价于[A-Za-z0-9_]。
任何官方文档的参考/引用(带有链接)将不胜感激。
【问题讨论】:
-
你甚至可以看到人们写
[x]或a|b|c之类的东西。正则表达式语法很棘手,并不是每个人都能正确理解。 -
是的,只是一个坏习惯——过度完整性,或者可能是Cargo Cult Programming。
-
使用
[\w]在国际海事组织中根本没有意义。括号是多余的,因为它与\w相同。有些人倾向于使用字符类而不是转义,例如[.]而不是\.,因为点在字符类中失去了意义。这种行为更多的是关于可读性和风格。附带说明一下,有时您想从\w中排除下划线。有窍门!使用它的倒数\W(大写),将其添加到否定字符类[^\W]并添加下划线[^\W_]。
标签: javascript regex