如何在JavaScript中匹配含竖线的"OOR|"并统计出现次数?
解决"OOR|"出现次数统计问题
你之前的两种写法都存在问题:
(/OOR/g)会匹配所有独立的"OOR"文本,不管后面有没有竖线,所以会统计到4次(对应字符串里的"OOR|"、"OOR "、"OOR|"、"OOR "中的OOR)(/OOR|/g)因为包含空匹配规则,会导致正则引擎陷入无限循环,因此报错
正确的做法是转义竖线字符——|在正则里是分支匹配的特殊符号,要匹配字面量的|必须加反斜杠转义。使用如下代码即可得到预期的2次结果:
var sTest = "OOR|the OOR me|this is test|OOR|OOR this is me"; var count = (sTest.match(/OOR\|/g) || []).length; console.log(count); // 输出2
如果不想用转义符,也可以用字符集[|]来匹配竖线,正则写成/OOR[|]/g,效果完全一致。
内容的提问来源于stack exchange,提问作者Jin Yong
相关产品推荐
相关产品推荐

