Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Laravel中使用多个正则表达式验证规则?_Php_Regex_Laravel_Validation - Fatal编程技术网

Php 如何在Laravel中使用多个正则表达式验证规则?

Php 如何在Laravel中使用多个正则表达式验证规则?,php,regex,laravel,validation,Php,Regex,Laravel,Validation,我目前正在为马来西亚公民开发一个系统,所以我需要一个基于马来西亚的电话号码格式。例如,电话号码如下所示:0161234567、0181234567、0191234567。基本上,它将从01开始,长度在10到11个数字之间。为此,我使用以下代码: $rules = [ 'phone_no'=>'required|regex:/^01\d{8,9}$/', ]; $messages = [ 'phone_no.required' => 'Phone Number

我目前正在为马来西亚公民开发一个系统,所以我需要一个基于马来西亚的电话号码格式。例如,电话号码如下所示:0161234567、0181234567、0191234567。基本上,它将从01开始,长度在10到11个数字之间。为此,我使用以下代码:

$rules = [
    'phone_no'=>'required|regex:/^01\d{8,9}$/',
    ];

$messages = [
    'phone_no.required' => 'Phone Number is required',
    'phone_no.regex' => 'Phone Number format is incorrect',
    ];

然而,我们可以使用另一种格式,即07(家庭或办公室电话号码)。这是我的问题。我不知道如何为regex设置多个验证规则。希望有人能帮我解决这个问题。

除非有更多要求,否则只需指定一种模式或另一种模式即可。用
()
将它们分组:

  • 01
    和8或9位
    {8,9}
|

  • 07
    和7位
    {7}

我不知道拉威尔,但我只是说
0
1或7
作为
/^0(1,7)\d{8,9}$/
也可以是
/^0[17]\d{8,9}$/
不确定哪个更好。
/^0[17]\d{8,9}$/
更好。但还有另一个问题。我需要验证电话号码是否有9-11位数字。例如,如果我使用07格式,我可以使用此代码
/^0[17]\d{7,8}$/
,它总共可以有9位数字。而对于01格式,我可以使用此代码
/^0[17]\d{8,9}$/
,它总共可以有10到11个数字。我试着在这里有3个数字
{7,8,9}
,但它似乎错了,是吗@我不能这样做。国际格式的数字呢?或者如果有其他格式可用?没有什么比拒绝一个我知道是正确的电话号码更糟糕的了,因为某个地方的某个程序员没有充分考虑未来。如果我必须验证,我允许一个可选的前导
+
,以及数字和空格的任意组合,并且我允许一些额外的字符用于更长的数字。@ihz如果您想要7-9个数字,请使用
{7,9}
而不是
{7,8,9}
/^(01\d{8,9})|(07\d{7})$/