Contact Form 7电话字段如何禁止输入111111这类连续重复数字
Contact Form 7 电话字段禁止连续重复数字修改方案
完整修改后代码
// define the wpcf7_is_tel callback function custom_filter_wpcf7_is_tel( $result, $tel ) { // 正则新增负向预查规则,禁止出现7个及以上连续相同的数字 $result = preg_match( '/^(?!.*(\d)\1{6,})^\(?\+?([0-9]{0})?\)?[-\. ]?(\d{10})$/', $tel ); return $result; } add_filter( 'wpcf7_is_tel', 'custom_filter_wpcf7_is_tel', 10, 2 );
核心修改说明
- 新增的
(?!.*(\d)\1{6,})是正则负向预查规则:(\d)匹配任意单个数字并捕获为分组1\1{6,}表示匹配和分组1完全相同的数字连续出现6次及以上,加上分组本身的1次,总长度就是7位及以上连续相同数字- 前缀
?!表示只要匹配到上述规则的内容,整个正则校验就不通过
- 规则完全匹配需求:只要输入的手机号里出现7个连续相同数字(比如1111111、2222222)就会直接判定校验失败
- 原有10位数字的校验规则完全保留,不影响之前的校验逻辑
如果需要调整禁止的连续重复数字长度,比如改成禁止6位连续重复,把{6,}改成{5,}即可。
内容的提问来源于stack exchange,提问作者Neeraj
相关产品推荐
相关产品推荐

