Elementor表单手机号验证如何限制仅接受9-10位纯数字?
问题原因
你当前使用的正则表达式没有限定字符串的起止匹配边界,只要输入内容中包含连续10位数字就会判定为符合规则,因此11位及以上长度的数字只要包含连续10位就可以通过校验;同时原有规则也没有兼容9位数字的匹配逻辑。
修正方案
将正则表达式调整为 /^[0-9]{9,10}$/ 即可,修改点说明:
^代表匹配字符串开始位置,$代表匹配字符串结束位置,要求整个输入内容完全符合规则,避免子串匹配导致的超长内容漏判{9,10}限定数字长度为9到10位,覆盖你的校验需求
完整可直接使用的代码
// Elementor 表单手机号校验 add_action( 'elementor_pro/forms/validation/tel', function( $field, $record, $ajax_handler ) { // 匹配9-10位纯数字格式,无横线或空格 if ( preg_match( '/^[0-9]{9,10}$/', $field['value'] ) !== 1 ) { $ajax_handler->add_error( $field['id'], 'הזן טלפון חוקי בעל 9-10 ספרות ללא מקף או רווח' ); } }, 10, 3 );
内容的提问来源于stack exchange,提问作者מירי לרנר
相关产品推荐
相关产品推荐

