2015-02-09 228 views
0

我發現這個javascript正則表達式來驗證美國電話號碼可以寫入的不同格式。但它也有問題:它不能匹配這個組中的第二條規則:正則表達式美國電話號碼驗證

三個數字的第一組,知道的區號開始與多家 2-9,其次是0-8,然後任何第三位數字。

它接受9,而它應該只接受來自(0-8)的數字。這正則表達式顯示了一切:http://regexr.com/3ackc

/^(1[- .]?)?(\([2-9]\d{2}\)[. -]?|[2-9]\d{2}[. -]?)[2-9]\d{2}[- .]?\d{4}$/gm 

回答

0

我沒有充分意識到美國的電話號碼的符號和詳細的限制,所以我提到Wikipedia和想出了這個:

/^[2-9][0-8]\d\-?[2-9]([02-9]{2}|[02-9]\d||\d[02-9])\-?\d{4}$/g 

Matches in Regexhelper