JS正则表达式陷阱合集

1.方括号

    这是W3C的解释

而事实上,[A-z]不仅仅包含字母,还包含下划线!!!

[.] 只能匹配真正的 . 符号,含义同. 

2.非贪婪

所有的正则匹配都是从左到右进行的,当匹配到之后,贪婪模式会尝试继续向后查找,是否有更长的字符串满足正则表达式

而非贪婪是匹配到第一个就停下,所以非贪婪并不是查找满足要求的最短的字符串

3.锚字符/零宽断言 

B并非  !  , B也是锚字符,只能匹配位置

正则表达式中锚字符统统不能加? + * 等重复标志,否则报错

w匹配字母/数字/下划线

w与W的边界属于   (ps: 下划线_属于w,连字符-属于W)

w与w, W与W的边界属于B

字符串replace方法中,replacement 不仅(?:xxx)不计数   (?=xxx)也不计数  (指的是$的计数)

原文地址:https://www.cnblogs.com/jx-z/p/10335063.html