【问题标题】:Laravel: company validation using regexLaravel:使用正则表达式进行公司验证
【发布时间】:2020-03-29 14:59:04
【问题描述】:

我不知道如何使用正则表达式。我想验证我的公司字段。

例如:

  1. url.co
  2. url.com
  3. url.in

现在我的 PHP 脚本接受任何字符串,但我想根据包含的网站 URL 验证它

字符串 + . + 任何域

protected function validator(array $data)
{    
    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
        'mobile_no' => ['required', 'string', 'min:10'],
        'company' => ['required', 'string', 'max:255'],
        'username' => ['required', 'string', 'max:255', 'unique:users'],

    ]);
}

【问题讨论】:

标签: php regex laravel


【解决方案1】:

试试这个:

protected function validator(array $data)
{
    $messages = [
        'company.regex' => 'Invalid format.'
    ];

    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
        'mobile_no' => ['required', 'string', 'min:10'],
        'company' => ['required', 'max:255', "regex:/\b((http|https):\/\/?)[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|\/?))/"],
        'username' => ['required', 'string', 'max:255', 'unique:users'],

    ],$messages);
}

【讨论】: