簡體   English   中英

asp.net的國際和本地電話號碼正則表達式

[英]Regular Expression for asp.net for International & local phone numbers

我正在使用以下正則表達式來覆蓋國際電話號碼和一些本地電話號碼,這些電話號碼只能采用這種格式

國際電話號碼

+123 456789123
+123456789123

+12 3456789123
+123456789123

本地電話號碼格式(手機號碼,后接固定電話號碼)

1234567890      
123 4567890

123123456
12 3123456

我正在使用的正則表達式

^[\+]{0,1}[1-9]{1}[0-9]{7,11}$

此正則表達式僅與國際數字配合使用,無論是否添加了前綴+但都不允許使用空格字符。

我希望它支持上述格式,例如示例所示,並且還應該支持所有國際電話號碼

我正在asp.net上工作,以防萬一有人想知道。

更新:

我最終使用以下正則表達式來處理擴展

^([\+]?[0-9]{1,3}[\s.-][0-9]{1,12})([\s.-]?[0-9]{1,4}?)$

嗨,一些關於你是正則表達式的評論

[\+]{0,1} could be \+?  // easier to read, + as optional
[1-9]{1} could be writen as [1-9]
[0-9]{7,11} should be [0-9\s.-]{7,11}  // phone numbers van contain - or .

您完全正則表達式將是

^\+?[1-9][0-9\s.-]{7,11}$

電話號碼可以寫為

  • 070-3233123
  • 070.3233123

第二次嘗試

您可以通過以下兩個步驟解決您的問題:

將首個匹配的電話號碼范圍從11增加到20

^\\+?[1-9][0-9\\s.-]{7,20}$

下一步是刪除非數字並驗證長度在8到12之間

string phone = "070.3233123";

string onlyNumbers= new String(phone.ToCharArray().Where(c => Char.IsDigit(c)).ToArray());

if (onlyNumbers.length > 8 &&  onlyNumbers.length < 12)
{
    // we got a winner
}

嘗試這個:

^[\+]?[1-9]{1,3}\s?[0-9]{6,11}$

下面的模式將驗證以下格式

^\s*\+?[0-9]\d?[- .]?(\([2-9]\d{2}\)|[2-9]\d{2})[- .]?\d{3}[- .]?\d{4}$

結果

+1 (281) 388 0388
+65 281 388-0388
+91 281 388 0388
+65 2813880388
+652813880388
+65(281)3880388
+65281388-0388
+1281388-0388

暫無
暫無

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

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