可以在javascript中使用正则表达式来查看字符串是否包含特定数量的特定字符吗?

可以在javascript中使用正则表达式来查看字符串是否包含特定数量的特定字符吗?,javascript,regex,string,Javascript,Regex,String,假设给我一个字符串(555)-555-5555,有没有办法检查该字符串是否正好包含10个数字5?我可以想出其他方法来解决这个问题,但我很好奇是否可以用正则表达式来解决这个问题。我试着用 var re=newregexp(/5{10}/) 但是很明显,这只匹配一行中的10个5。一个“主要”的正则表达式解决方案是将所有其他字符替换为空字符串,并检查结果的长度。或者类似地,您可以将所需的字符匹配并替换为空字符串,然后计算差值,看看它是否是所需的数字。一个“主要”正则表达式解决方案是将所有其他字符匹配并

假设给我一个字符串(555)-555-5555,有没有办法检查该字符串是否正好包含10个数字5?我可以想出其他方法来解决这个问题,但我很好奇是否可以用正则表达式来解决这个问题。我试着用
var re=newregexp(/5{10}/)
但是很明显,这只匹配一行中的10个5。

一个“主要”的正则表达式解决方案是将所有其他字符替换为空字符串,并检查结果的长度。或者类似地,您可以将所需的字符匹配并替换为空字符串,然后计算差值,看看它是否是所需的数字。

一个“主要”正则表达式解决方案是将所有其他字符匹配并替换为空字符串,然后检查结果的长度。或者类似地,您可以将所需的字符匹配并替换为空字符串,然后计算差值,看看它是否是所需的数字。

1)删除所有非
5
,计算剩余的数字

str.replace(/[^5]/g, '').length == 10
2) 计数
5
-带尾组:

str.match(/^[^5]*(?:5[^5]*){10}$/)
编辑:修复错误。另外,解释是:整个字符串(
^…$
)由任意数量的非
5
组成,然后是10组
5
和任意数量的非
5
。因此,

x55pp5peep5o5555taco5lol5
分解成

^               start of string
[^5]*           x
(?:5[^5]*){10}  5
                5pp
                5peep
                5o
                5
                5
                5
                5taco
                5lol
                5
$               end of string
1) 删除所有非
5,清点剩余部分

str.replace(/[^5]/g, '').length == 10
2) 计数
5
-带尾组:

str.match(/^[^5]*(?:5[^5]*){10}$/)
编辑:修复错误。另外,解释是:整个字符串(
^…$
)由任意数量的非
5
组成,然后是10组
5
和任意数量的非
5
。因此,

x55pp5peep5o5555taco5lol5
分解成

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

这不是重复的…请尝试:
^(?[^5]*5){10}[^5]*$
绝对不是重复的。这不是重复的…请尝试:
^(?[^5]*5){10}[^5]*$
绝对不是重复的。很好,我喜欢第一个解决方案,但理解第二个解决方案有点困难,我仍然是正则表达式的noob。很好,我喜欢第一个解决方案,虽然在理解第二种解决方案时有点困难,但我仍然是regEx的一个noob。