瑞士电话号码RegEx

时间:2014-04-11 14:53:29

标签: php regex validation laravel-4 phone-number

我需要一个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;

感谢您的帮助!

5 个答案:

答案 0 :(得分:4)

你可以这样做:

(\+41)\s(\d{2})\s(\d{3})\s(\d{2})\s(\d{2})

演示:http://regex101.com/r/hJ9oY0

答案 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)