【发布时间】:2020-07-10 12:20:57
【问题描述】:
这是我用于国际电话号码验证的正则表达式
\+(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|
2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|
4[987654310]|3[9643210]|3[70]|7|1)\d{1,14}$
上述格式验证所有号码,除了南苏丹的国际代码 +211 国家代码
以下是我对手机号码的完整验证规则,
'mobile' => ['required', 'string','min:11','max:14', 'regex:/\+(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|
2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|
4[987654310]|3[9643210]|3[70]|7|1)\d{1,14}$/'],
我缺少什么,这是 Laravel 中一个好的国际手机号码验证规则吗?
【问题讨论】:
-
2[98654321]\d处理211但它前面似乎有空格,所以正则表达式引擎会尝试匹配它。您应该对整个2[98654321]\d块以及4[987654310]有问题,这将有同样的问题。 -
不,删除所有空格仍然收到错误消息,移动格式无效。
-
'mobile' => ['required', 'string','min:11','max:14', 'regex:/\+(9[976]\d|8[ 987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210 ]|5[87654321]|4[987654310]|3[9643210]|3[70]|7|1)\d{1,14}$/'],
-
你测试的是什么输入?
-
@VLAZ +211770757180,即自动扣除“+”号
标签: php regex laravel validation laravel-6