【问题标题】:How to disallow repeated numbers in telephone field like 1111111 or 222222如何禁止电话字段中的重复号码,如 1111111 或 222222
【发布时间】:2021-11-01 05:27:48
【问题描述】:

我正在使用联系表格 7,并希望禁止用户在电话字段中输入重复的数字,例如 1111111 或 2222222。

我使用以下代码仅输入 10 位数字。任何人都可以帮助我解决我应该更改或添加的内容。

// define the wpcf7_is_tel callback<br> 
function custom_filter_wpcf7_is_tel( $result, $tel ) {<br> 
  $result = preg_match( '/^\(?\+?([0-9]{0})?\)?[-\. ]?(\d{10})$/', $tel );<br>
  return $result; <br>
}<br>
         
add_filter( 'wpcf7_is_tel', 'custom_filter_wpcf7_is_tel', 10, 2 );

【问题讨论】:

  • 一个数字可以重复多少次才能使该数字无效?
  • 允许的数字是 10,但不希望相同的数字重复超过 5 次。也只想入手 6,7,8 & 9

标签: preg-match contacts phone-number


【解决方案1】:

首先,[0-9]{0} 看起来像一个错字,因为这个模式不匹配任何内容,一个空字符串。您可能想要匹配一个可选的区号,三位数字。所以,如果你是这个意思,请使用\d{3}

接下来,要禁止与 \d{10} 匹配的数字中出现相同的数字,您只需将其重写为 (?!(\d)\1{9})\d{10}

记住上面所说的,解决方案是

function custom_filter_wpcf7_is_tel( $result, $tel ) {<br> 
  return preg_match('/^\(?\+?(?:\d{3})?\)?[-. ]?(?!(\d)\1{9})\d{10}$/', $tel );<br>
}

请参阅regex demo

【讨论】:

  • 您好,我使用了 [0-9]{0},因为我不想要超过 10 位数字,而且它只能工作。让我看看你的解决方案。
  • 谢谢。该解决方案适用于重复数字,但我也希望它仅以 9、8、7 和 6 开头,请帮助,因为我对编码知之甚少。
  • @Neeraj 这不是你问的,但你当然可以让模式开始匹配只有当十位数字中的第一个是987 或 @987654330 @如果你使用[6-9]。模式声明类似于'/^\(?\+?(?:\d{3})?\)?[-. ]?(?!(\d)\1{9})[6-9]\d{9}$/'
猜你喜欢
  • 1970-01-01
  • 2018-09-25
  • 1970-01-01
  • 2015-07-22
  • 1970-01-01
  • 1970-01-01
  • 2019-04-01
  • 1970-01-01
  • 2010-12-19
相关资源
最近更新 更多