Javascript正则表达式 - 无序字符串中的特定字符数

时间:2014-09-07 23:26:57

标签: javascript regex

我试图测试无序字符串是否有' 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?如果正则表达式不是测试它的最佳方法,那么是什么?

谢谢!

4 个答案:

答案 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