我试图测试无序字符串是否有' 3'在其中5次。
例如:
var re = /3{5}/;
re.test("333334"); //returns true as expected
re.test("334333"); //returns false since there is no chain of 5 3s
什么正则表达式会使第二行返回true?如果正则表达式不是测试它的最佳方法,那么是什么?
谢谢!
答案 0 :(得分:6)
尝试
(str.match(/3/g) || []).length >= 5
或者
str.split(3).length > 5
其中str
是您要测试的字符串。
答案 1 :(得分:3)
你可以这样写:
var re = /(?:3[^3]*){5}/;
答案 2 :(得分:2)
我会去
s.replace(/[^3]/,'').length >= 5
假设要测试的字符串名为s
答案 3 :(得分:0)
我会选择:
string.indexOf('33333') > -1