你能在javascript中使用RegEx来查看字符串是否包含一定数量的某些字符吗?

时间:2016-05-12 02:18:16

标签: javascript regex string

说我给了一个字符串(555)-555-5555,有没有办法检查字符串是否恰好包含10次出现的数字5?我可以想出解决这个问题的其他方法,但我很好奇是否可以使用regEx来完成。我试过用 var re = new regExp(/5{10}/); 但显然这只能连续匹配10个。

2 个答案:

答案 0 :(得分:3)

1)删除所有非5,计算遗骸。

str.replace(/[^5]/g, '').length == 10

2)计算5 - 尾巴组:

str.match(/^[^5]*(?:5[^5]*){10}$/)
编辑:修复了错误。另外,解释:字符串的整体(^...$)由任意数量的非5组成,后面跟着正好10个一组5和任意数量的非5 1}}。因此,

x55pp5peep5o5555taco5lol5

分解为

^               start of string
[^5]*           x
(?:5[^5]*){10}  5
                5pp
                5peep
                5o
                5
                5
                5
                5taco
                5lol
                5
$               end of string

答案 1 :(得分:0)

A"主要是"正则表达式解决方案是匹配用空字符串替换所有其他字符并检查结果的长度。或者类似地,你可以匹配并用空字符串替换你想要的字符并取出差异,看看它是否是你想要的数字。