2013-05-04 168 views
0

我需要一個電話號碼的正則表達式,其中包括國家代碼,區號和電話號碼。電話號碼格式應該完全一樣:001-253-347888790-312-4900203。 我嘗試這個,但它不起作用。什麼應該是正確的格式?我如何獲得電話號碼信息?電話號碼正則表達式

(\(\d{3}-))?\d{3}-\d{4} 
+0

當然,數字格式將取決於(至少)國家代碼?如果沒有,爲什麼要把它們存儲格式化?爲什麼不只是存儲數字,然後在表示層中進行格式化? – eggyal 2013-05-04 18:27:14

+0

你會有其他的國家代碼嗎?一些國家代碼是1或4位數字,因此您可以使用數字,如 1-253-3478887 或 1-001-253-3478887。 另外,你爲什麼要存儲一個前導零,但不是另一個?換句話說,國家代碼將如何格式化? – 2013-05-04 18:30:05

+0

它可以是任何國家,我不知道如何檢查和編寫適合所有人的正則表達式 – user2325116 2013-05-04 18:33:17

回答

1
^((\d-\d{3})|(\d{1,3}))\-\d{3}-\d{7}$ 

這個正則表達式將匹配所有的國家代碼。國家代碼1和1-684在其他答案中無效。它也會阻止1-42等國家代碼被允許,因爲國家代碼中唯一應該有一個分隔符的時間是四位數字。如果最終得到4位國家代碼沒有分隔符,請使用以下代碼:

^((\d{4})|(\d{1,3}))\-\d{3}-\d{7}$ 
+0

感謝它完美:))) – user2325116 2013-05-04 18:53:12

2

這將根據您所提供的兩個例子工作,

^\d{2,3}\-\d{3}-\d{7}$ 
+0

只是一個恥辱,不會匹配一個英國電話號碼。 – eggyal 2013-05-04 18:33:20

+0

@eggyal我的答案是基於給出的例子,有這麼多的電話號碼組合。我怎麼知道這一切?也許OP需要針對這個問題具體說明。 – 2013-05-04 18:38:07

0

你可以看看這個:

((\d{2,3}-))\d{3}-\d{7} 
+0

@JW웃 - 更新了正則表達式。感謝您的輸入。 – 2013-05-04 18:32:21