如何禁止电话字段中的重复数字,如 1111111 或 222222
How to disallow repeated numbers in telephone field like 1111111 or 222222
我正在使用联系表 7,并希望禁止用户在 phone 字段中输入重复的数字,例如 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 );
首先,[0-9]{0}
看起来像一个拼写错误,因为这个模式不匹配任何东西,一个空字符串。您可能想要匹配一个可选的区号,三位数。所以,如果你是这个意思,请使用 \d{3}
。
接下来,要禁止与 \d{10}
匹配的数字中出现相同的数字,您只需将其重写为 (?!(\d){9})\d{10}
.
牢记以上所述,解决方案是
function custom_filter_wpcf7_is_tel( $result, $tel ) {<br>
return preg_match('/^\(?\+?(?:\d{3})?\)?[-. ]?(?!(\d){9})\d{10}$/', $tel );<br>
}
参见regex demo。
我正在使用联系表 7,并希望禁止用户在 phone 字段中输入重复的数字,例如 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 );
首先,[0-9]{0}
看起来像一个拼写错误,因为这个模式不匹配任何东西,一个空字符串。您可能想要匹配一个可选的区号,三位数。所以,如果你是这个意思,请使用 \d{3}
。
接下来,要禁止与 \d{10}
匹配的数字中出现相同的数字,您只需将其重写为 (?!(\d){9})\d{10}
.
牢记以上所述,解决方案是
function custom_filter_wpcf7_is_tel( $result, $tel ) {<br>
return preg_match('/^\(?\+?(?:\d{3})?\)?[-. ]?(?!(\d){9})\d{10}$/', $tel );<br>
}
参见regex demo。