202104-27 一个关于JS正则匹配的踩坑记录 最近发现在JS里的正则匹配有一个坑,而且当时很莫名奇妙,一度让我怀疑出现了灵异事件。下面是踩坑代码varstr=["二七1","二七2","金水","二七3","二七4","二七5"]varreg=newRegExp("二七","g");for(vari=0;i<str.length;i++){if(reg.test(str[i])){console.log(str[i])}}我用正则对str进行全局匹配,当满足的时候打印出来,于是乎我就得到了这个莫名的少... 继续阅读 >
202009-27 js 正则学习小记之匹配字符串字面量优化篇 昨天在《js正则学习小记之匹配字符串字面量》谈到/"(?:\\.|[^"])*"/是个不错的表达式,因为可以满足我们的要求,所以这个表达式可用,但不一定是最好的。从性能上来说,他非常糟糕,为什么这么说呢,因为传统型NFA引擎遇到分支是从左往右匹配的,所以它会用\\.去匹配每一个字符,发现不对后才用[^"]去匹配。比如这样一个字符串:"123456\'78\"90"共16个字符,除了第一个"直接匹配成功,还剩余15个,只有2个转... 继续阅读 >