我想添加一个正则表达式来检查电话号码是否包含相同的数字超过 n 次。 这就是我尝试过的:
^0[1-9]([-. ]?[0-9]{2}){4}$
我怎样才能做到呢? 谢谢。
最佳答案
您只需检查任何重复字符 n 次或更多次。首先我们需要确定要捕获哪些字符。其次,我们需要使用反斜杠 + n 从捕获组中获取单个字符。最后我们需要说明它应该重复多少次。在这种情况下,我认为不需要验证整个数字,只需验证存在相同的重复字符这一事实即可。因此,为了捕获任何重复次数 4 次或更多次的数字,我们可以这样做:
'06000000000'.test(/([0-9])\1{3,}/); // return true
'12344445678'.test(/([0-9])\1{3,}/); // return true
'01234567890'.test(/([0-9])\1{3,}/); // return false
([0-9])
这是我们要检查的内容,在本例中是 0 到 9 之间的任何数字
\1
从第一个捕获组获取值
{3,}
检查该值是否重复 3 次或以上,因为我们已经在捕获组中找到了匹配的第一个字符。 3 + 1 = 4 自然。
关于javascript - 正则表达式阻止连续 4 次以上包含相同数字的电话号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39750585/