我已經創建了一個reg精通,這基本上可以讓我喜歡讓所有格式。然而,仍然有一個小問題,與()...正則表達式驗證電話
^\(?(\+?\d+)?\)? ?\d*(-?\d{2,3} ?){0,4}$
這將是有效的:(+ 356-123 456 78,但它不應該....同爲+356) - 123 456 78.
任何人知道如何確保模式既包含()或沒有?
我已經創建了一個reg精通,這基本上可以讓我喜歡讓所有格式。然而,仍然有一個小問題,與()...正則表達式驗證電話
^\(?(\+?\d+)?\)? ?\d*(-?\d{2,3} ?){0,4}$
這將是有效的:(+ 356-123 456 78,但它不應該....同爲+356) - 123 456 78.
任何人知道如何確保模式既包含()或沒有?
試試這個:
^(?:\((\+?\d+)?\)|\+?\d+) ?\d*(-?\d{2,3} ?){0,4}$
它允許區號要麼有一個區域代碼括號或不。
謝謝,這是我所追求的! – Jeffrey
處理最簡單的方法是剝離非數字和電話號碼字段空白標準化。人們需要輸入許多愚蠢的電話號碼格式。我建議2個步驟:
// Strip non-numbers and whitespace
var cleanPhone = phoneNumber.replace(/[^0-9\s]/, "");
// All whitespace are now single spaces
cleanPhone = cleanPhone.replace(/\s+/, " ");
if(cleanPhone.match(/* place your (now simple) validation regex here */)) {
// Valid!
}
http://stackoverflow.com/questions/9370903/java-regex-replacing-a-phone-number-including-optional-parentheses – Marc