我需要一个RegEx来验证(使用Laravel,一个php框架)瑞士手机号码必须符合这种格式:
+41 11 111 11 11
“+41”部分必须完全按照这种方式进行,其余部分(11 111 11 11)可以是1到9之间的任何数字。
调用RegEx的函数如下所示:
$regex = "thisIsWhereINeedYourHelp";
if (preg_match($regex, $value)) {
return true;
}
return true;
感谢您的帮助!
答案 0 :(得分:4)
答案 1 :(得分:4)
这是我使用的模式:
/(\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
可以忽略任何空格,它会检查单词和非单词的边界。
答案 2 :(得分:3)
这是一个可以正常使用瑞士电话号码的正则表达式:
^(\+?)(\d{2,4})(\s?)(\-?)((\(0\))?)(\s?)(\d{2})(\s?)(\-?)(\d{3})(\s?)(\-?)(\d{2})(\s?)(\-?)(\d{2})
答案 3 :(得分:1)
我首先清理一下字符串(避免无用的匹配):
// input string cleanup
$input = preg_replace('/[^0-9+\(\)-]/', '', $input);
我匹配一个瑞士号码:
// 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";
这应该匹配所有瑞士格式并且相当可靠
答案 4 :(得分:0)
您可以使用Laravel-Phone包进行验证,格式化和更多功能。
在您的情况下,您可以指定您的国家/地区:
'phone' => 'required|phone:CH'
CH =瑞士(Confoederatio Helvetica)