【问题标题】:Laravel country code and phone number validationLaravel 国家代码和电话号码验证
【发布时间】:2021-10-03 00:16:28
【问题描述】:
Country Coutry code Digit
India 2 11
KSA 3 9
USA 1 9
 public function rules(): array
    {
        return [
    '*.sender_phone_code' => ['required', 'integer', 'digits:3'],
    '*.sender_phone_number'   => ['required', 'integer', 'digits:9']
]}

如何在验证规则 Laravel 中验证上述电话号码和国家代码验证。

【问题讨论】:

  • 所以您希望基于country_code 验证phone_number 长度?
  • 是的,如果用户添加美国代码,那么号码必须是 9 位,如果用户添加印度代码,那么号码必须是 11 位。
  • 一种方法是编写自定义验证器

标签: php laravel validation


【解决方案1】:

我为此使用giggsey/libphonenumber-for-php

public function rules(): array
    {
        return [
    '*.sender_phone_code' => ['required', 'integer', 'digits:3'],
    '*.sender_phone_number'   => ['required', 'integer', 'digits:9', function ($attribute, $value, $fail) {
            $phoneUtil = \libphonenumber\PhoneNumberUtil::getInstance();
            try {
                $phoneNumberProto = $phoneUtil->parse($value);
            } catch (\libphonenumber\NumberParseException $e) {
                $fail('The '.$attribute.' is invalid.');
            }
            if (!$phoneUtil->isValidNumber($phoneNumberProto)) {
                $fail('The '.$attribute.' is invalid.');
            }
        }]
]}

【讨论】:

    猜你喜欢
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 2010-09-15
    相关资源
    最近更新 更多