2014-02-17 84 views
0

嗨表達我需要的正則表達式的電話號碼驗證爲以下格式定期進行電話號碼驗證

+1-646-222-3333 

我已經寫了像

^(+)([0-9]{3}-[0-9]{3}-[0-9]{4}) 

但它不工作的表達。我能知道我做錯了嗎?

+0

您可以使用Google的libphonenumber,它專門用於處理電話號碼 – fge

回答

3

試試這個:

String str = "+1-646-222-3333"; 
    if(str.matches("\\+\\d-\\d{3}-\\d{3}-\\d{4}")) { 
     System.out.println("Valid number"); 
    }else { 
     System.out.println("Invalid number"); 
    } 
+0

簡直超級thanx :) –

2

我認爲你在開始時錯過了1。如果你不想讓任何尾隨的字符串,那麼你就應該分數線編輯$.

^(\+)([0-9]-[0-9]{3}-[0-9]{3}-[0-9]{4})$ 
    ^

末:如前所述,+必須轉義。

+2

此外,必須轉義'+'。 –

+0

哎呀!注意到,謝謝 –

0

這工作 -

^(\+)([0-9]-[0-9]{3}-[0-9]{3}-[0-9]{4}) 

測試here

0

做這樣

^(\\+1)-([0-9]{3}-[0-9]{3}-[0-9]{4}) 
    ^
     put this 
0
^(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$