Laravel 中的国际 phone 号码验证正则表达式问题
International phone number validation regex issue in Laravel
这是我用于国际 phone 号码验证的正则表达式
\+(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 中的一个很好的国际手机号码验证规则吗?
我经常使用 Laravel-Phone package,因为至少在我看来,这是验证和格式化 phone 数字的最干净的方法。
$request->validate([
'phone' => [
'required',
Rule::phone()->detect()->country('GB'),
],
]);
要格式化 phone 数字,例如,为了保存到数据库或进行比较,使用一致的格式,请使用
PhoneNumber::make('020 123456', 'GB')->formatE164(); // returns +4420123456
这是我用于国际 phone 号码验证的正则表达式
\+(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 中的一个很好的国际手机号码验证规则吗?
我经常使用 Laravel-Phone package,因为至少在我看来,这是验证和格式化 phone 数字的最干净的方法。
$request->validate([
'phone' => [
'required',
Rule::phone()->detect()->country('GB'),
],
]);
要格式化 phone 数字,例如,为了保存到数据库或进行比较,使用一致的格式,请使用
PhoneNumber::make('020 123456', 'GB')->formatE164(); // returns +4420123456