正则表达式之关于 [] 符号

197 阅读1分钟

关于[]符号mdn 是这样描述的

截屏2021-08-11 下午4.24.53.png

有一句话我们容易忽略,就是[]中的字符集合对于*这样的特殊符号是没有特殊意思的。

具体举例子来说,有一个需求是把一个字符串的连续空格和中文,号替换成英文,号

连续空格我们自然的用\s+来表示,连续空格号我们自然的想到了[\s+|,]来表示

'+12'.test(/[\s+|,]/g 我们想要的结果是false,因为+12既没有空格也没有但实际结果是 true, 原因就是 [xyz] 是一个字符集合,对于点.*+号这样的特殊符号在一个字符集中没有特殊的含义,所以匹配到了+号,

可将正则表达式修改为/\s+|,/g