如何用Propaganistas/Laravel-Phone仅接受阿联酋E.164格式手机号?
解决Propaganistas/Laravel-Phone仅接受阿联酋E.164格式手机号的问题
你当前使用的规则phone:INTERNATIONAL,AE不符合需求的原因是:
INTERNATIONAL格式规则会匹配所有国家的国际标准手机号,而非仅限阿联酋- 同时指定
AE会额外允许阿联酋的本地格式手机号
要实现仅接受阿联酋的E.164格式手机号,有两种可靠方案:
方案1:结合包的格式参数与国家限制
直接使用E164格式参数并指定阿联酋国家代码,包会自动验证号码为E.164格式且归属阿联酋:
'phonefield' => 'phone:E164,AE',
方案2:基础国家验证+正则强制E.164格式
如果方案1存在版本兼容问题,可以用phone:AE确保号码属于阿联酋,再通过正则表达式强制必须是+971开头的E.164格式:
'phonefield' => [ 'required', 'phone:AE', 'regex:/^\+971\d{9}$/' ],
这个正则会严格匹配以+971开头、后跟9位数字的标准阿联酋E.164手机号格式。
内容的提问来源于stack exchange,提问作者Mohamed Al Ali
相关产品推荐
相关产品推荐

