Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript regex - specific number of characters in unordered string

I'm trying to test whether or not an unordered string has '3' in it 5 times.

For example:

var re = /3{5}/;
re.test("333334"); //returns true as expected
re.test("334333"); //returns false since there is no chain of 5 3s

What regex would make the second line return true? If regex is not the best way to test this, what is?

Thanks!

like image 572
Ativ Avatar asked Sep 07 '14 23:09

Ativ


3 Answers

Try

(str.match(/3/g) || []).length >= 5

Or

str.split(3).length > 5

Where str is the string you want to test.

like image 75
Oriol Avatar answered Nov 16 '22 14:11

Oriol


You can write this:

var re = /(?:3[^3]*){5}/;
like image 3
Casimir et Hippolyte Avatar answered Nov 16 '22 13:11

Casimir et Hippolyte


I would go for

s.replace(/[^3]/,'').length >= 5

Assuming that the string to be tested is named s

like image 2
bbonev Avatar answered Nov 16 '22 12:11

bbonev