当前位置: 首页 > 知识库问答 >
问题:

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

卞嘉许
2023-03-14

我想添加一个正则表达式来检查一个电话号码是否包含相同的数字超过n次。这就是我尝试的:

  ^0[1-9]([-. ]?[0-9]{2}){4}$

我怎样才能做到?谢谢

共有3个答案

翟泰
2023-03-14

您可以尝试以下模式:

(\d)\1{3,}

(\d)表示数字编号

(\d)\1匹配编号子表达式的数字

(\d)\1{2,}与数字1匹配2次以上。

(\d)\1{3,}与数字1匹配3次以上。

(\d)\1{3}正好匹配13次

\1已经算1了。这就是为什么1{3}是1 3。

东方森
2023-03-14

你可以去

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

这些数字可以丢弃,请参阅regex101.com上的演示。

乐宜民
2023-03-14

你只需要检查任何重复的字符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自然。

 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 如何使用正则表达式验证电话号码 (42个答案) 4年前关闭。 我需要您的帮助。我必须形成一个仅接受8个数字(不包含字母)且不超过3个破折号的正则表达式。 它应该接受以下示例: 它不应接受以下示例: 任何帮助表示赞赏。 问题答案: 您可以尝试一下。请参阅演示。 https://regex101.com/r/hE4jH0/20

  • 问题内容: 该字符串不应包含SSN或电话号码。下面的正则表达式不起作用,它仅接受xxxxxxxxx格式。 不应包含或或。 问题答案: 您可以尝试: 解释一下,如果我们阅读了您提供的查询: 我们可以读到:( 在我的顶部版本中,我改写为:。)。 保证世界上任何字符串都不匹配其中至少两个,因此它们的组合始终为真,从而为您提供了一个简单得多的有效正则表达式: 是零宽度的断言,因此它不消耗任何东西。即使匹配

  • 我需要一个正则表达式,将匹配的电话号码,不是所有的组成相同的数字。我说的是一个10位数的电话号码,看起来像(123)123-1234。我见过一些模式会匹配所有相同的电话,但我试图匹配相反的。 我想到了这个,哦,非常接近,但不完全在那里。 唯一失败的地方是当区号都是相同的数字时,其他一切似乎都很好。所以它会在这样的(888)123-1234上失败,但会在(886)123-1234上传递 我怎样才能让

  • 问题内容: 我对和都错了。我想检查哈希是否仅包含数字。我错过了什么? 问题答案: 应该这样做。原始匹配的任何内容都只包含一位数字。

  • 在注册会员时,经常需要输入电话号码,电话号码是指手机号码或者固定电话。如果输入的内容不合法,则会向用户输出提示。本实例模拟实现电话号码的验证功能,接收用户在控制台输入的电话号码,然后进行判断,并将结果输出。 在这里使用《 Java正则表达式》一节中讲到的正则表达式支持的字符来实现,步骤如下。 (1) 创建名为 Test21.java 的 Java 文件,在 main() 方法中开始编写代码。 (2

  • 我正在修改一个脚本。该脚本包含一个表单,允许访问者向电话号码发送短信。在表单中,我有一个文本框,用户在其中输入文本接收器的电话号码。我正在使用正则表达式验证电话号码,以防止垃圾邮件发送者,并确保用户键入正确的号码。 以下是阿富汗使用的默认电话号码: 正则表达式验证首先应该确保使用93,然后确保在93之后使用78、77、79或700(其中之一),最后是6位数。 下面是我试图修复的Javascript