繁体   English   中英

正则表达式连续阻止包含相同数字的电话号码超过4次?

[英]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的原因。

你可以去

^\d*(\d)\1{3}\d*$

这些编号可以被丢弃,请参阅regex101.com上的演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM