📜  电话号码验证,laravel - PHP (1)

📅  最后修改于: 2023-12-03 14:56:26.334000             🧑  作者: Mango

电话号码验证

本文介绍如何使用 Laravel 的表单验证功能验证用户输入的电话号码是否合法。

安装

在开始之前,需要安装 Laravel。如果您还没有安装,可以参考官方文档:Laravel 安装指南

设置验证规则

Laravel 提供了方便的表单验证功能,可以在控制器中定义验证规则,然后使用 validate 方法进行验证。在这个例子中,我们将使用 regex 验证规则匹配电话号码。

在控制器中添加以下代码:

public function store(Request $request)
{
    $validatedData = $request->validate([
        'phone_number' => ['required', 'regex:/^(?:\+?\d{1,3})?[ -]?\(?\d{3}\)?[ -]?\d{3}[ -]?\d{4}$/'],
    ]);

    // 处理验证通过后的逻辑
}

这里我们使用 regex 规则匹配电话号码。该规则最好放在数组中,这样可以使用多个数据验证规则来验证字段。

required 规则说明该字段是必须的,并且不能为空。

regex 规则使用一般的正则表达式匹配要求。在这个例子中,我们使用了以下正则表达式:

/^(?:\+?\d{1,3})?[ -]?\(?\d{3}\)?[ -]?\d{3}[ -]?\d{4}$/

这个正则表达式可以匹配以下电话格式:

  • (123) 456-7890
  • 123-456-7890
  • 123 456 7890
  • +91 (123) 456-7890
  • ...
测试验证

我们可以使用 Laravel 提供的测试功能来测试验证规则。在控制器中添加以下测试代码:

public function tests()
{
    $passes = Validator::make([
        'phone_number' => '(123) 456-7890',
    ], [
        'phone_number' => ['required', 'regex:/^(?:\+?\d{1,3})?[ -]?\(?\d{3}\)?[ -]?\d{3}[ -]?\d{4}$/'],
    ])->passes();

    if ($passes) {
        echo '测试通过';
    } else {
        echo '测试不通过';
    }
}

这段代码创建了一个包含 (123) 456-7890 号码的数组,并在数组中定义了相应的验证规则。然后使用 passes() 方法验证,如果测试通过,则输出 测试通过;否则,输出 测试不通过

结论

使用 Laravel 的表单验证功能可以轻松地验证用户输入的电话号码是否合法。本文提供了一个例子,使用 regex 规则匹配电话号码。

完整的代码可以参考 GitHub

参考文献