Php 瑞士电话号码的正则表达式
我需要一个正则表达式(使用Laravel,一个php框架)来验证瑞士电话号码,该号码必须符合以下格式: +4111111111 “+41”部分必须正好如此,而其余部分(11111)可以是1到9之间的任意数字 调用正则表达式的函数如下所示:Php 瑞士电话号码的正则表达式,php,regex,validation,laravel-4,phone-number,Php,Regex,Validation,Laravel 4,Phone Number,我需要一个正则表达式(使用Laravel,一个php框架)来验证瑞士电话号码,该号码必须符合以下格式: +4111111111 “+41”部分必须正好如此,而其余部分(11111)可以是1到9之间的任意数字 调用正则表达式的函数如下所示: $regex = "thisIsWhereINeedYourHelp"; if (preg_match($regex, $value)) { return true; } ret
$regex = "thisIsWhereINeedYourHelp";
if (preg_match($regex, $value)) {
return true;
}
return true;
谢谢你的帮助 您可以通过以下方式进行操作:
(\+41)\s(\d{2})\s(\d{3})\s(\d{2})\s(\d{2})
演示:这里有一个正则表达式,可以与瑞士电话号码配合使用:
^(\+?)(\d{2,4})(\s?)(\-?)((\(0\))?)(\s?)(\d{2})(\s?)(\-?)(\d{3})(\s?)(\-?)(\d{2})(\s?)(\-?)(\d{2})
我首先稍微清理一下字符串(这样可以避免无用的匹配): 我不匹配瑞士号码:
// swiss telephone validation +41 (0)xx xxx xxxx
if(preg_match('/^(\+41|0041|0){1}(\(0\))?[0-9]{9}$/',$input))
$result = "match: CH";
else $result = "no match";
这应该匹配所有瑞士格式,并且相当可靠您可以使用该软件包进行验证、格式化和更多功能
在您的情况下,您可以这样指定您所在的国家:
'phone' => 'required|phone:CH'
CH=瑞士(Confoederatio Helvetica)这是我使用的模式:
/(\b(0041|0)|\B\+41)(\s?\(0\))?(\s)?[1-9]{2}(\s)?[0-9]{3}(\s)?[0-9]{2}(\s)?[0-9]{2}\b/
它符合以下所有条件:
+41 11 111 11 11
+41 (0) 11 111 11 11
+41111111111
+41(0)111111111
00411111111
0041 11 111 11 11
0041 (0) 11 111 11 11
011 111 11 11
0111111111
任何空格都可以省略,它会检查单词和非单词的边界。如果您想匹配
+41 00 111 22 33
和+410011123
的话,可以将每个\s
更改为\s?
的重复项。理想情况下,您希望能够接受以空格分隔/不以空格分隔的数字或连字符分隔的数字瑞士,我们从来不用连字符写电话号码,所以在这个正则表达式中,你可以省略所有的(\-?)
,如果你只想将号码与国家前缀匹配,从0041或+41/(\b(0041)\\b\+41)(\s(0\)(\s)?[1-9]{2}(\s)?[0-9]{3}(\s)?[0-9]{2}(\s)?[0-9]{2}b/
+41 11 111 11 11
+41 (0) 11 111 11 11
+41111111111
+41(0)111111111
00411111111
0041 11 111 11 11
0041 (0) 11 111 11 11
011 111 11 11
0111111111