[英]Regex to block a phone number that contains same digit more than 4 times successively?
我想添加一个正则表达式来检查电话号码是否包含相同的数字超过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自然。
您可以尝试以下模式:
(\d)\1{3,}
(\\ d)表示数字
(\\ d)\\ 1匹配编号子表达式的数字
(\\ d)\\ 1 {2,}与数字1 + 2匹配多次。
(\\ d)\\ 1 {3,}与数字1 + 3匹配多次。
(\\ d)\\ 1 {3}精确匹配1 + 3次
\\ 1已经算1。 这就是\\ 1 {3}是1 + 3的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.