簡體   English   中英

瑞士電話號碼的正則表達式

[英]RegEx for swiss 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;

謝謝你的幫助!

這是我使用的模式:

/(\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)\\s(\\d{2})\\s(\\d{3})\\s(\\d{2})\\s(\\d{2})

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

這是一個適用於瑞士電話號碼的正則表達式:

^(\+?)(\d{2,4})(\s?)(\-?)((\(0\))?)(\s?)(\d{2})(\s?)(\-?)(\d{3})(\s?)(\-?)(\d{2})(\s?)(\-?)(\d{2})

我首先清理一下字符串(避免無用的匹配):

// 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";

這應該匹配所有瑞士格式並且相當可靠

您可以使用Laravel-Phone包進行驗證、格式化和更多功能。

在您的情況下,您可以像這樣指定您的國家:

'phone' => 'required|phone:CH'

CH = 瑞士 (Confoederatio Helvetica)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM