2012-03-19 16 views
24

可能性の重複:
A comprehensive regex for phone number validation
Validate phone number with JavaScript米国の電話番号を検証する正規表現ですか?

私は米国のフォーマット (123)123-1234の電話番号を検証するための正規表現を記述しようとしている - 真 123-123-1234 - true

他のすべてが無効です。

私は

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

ような何かを思いついた。しかし、これはRIGHTされていない、 123)-123-1234 (123-123-1234

検証します。

+9

私はそれは、人々が自分の携帯電話に入力できるように多くの友好的だと思います彼らが望む任意の方法で番号を付けます。非数字を取り除き、10桁の数字を残しておきなさい。 – Pointy

+0

これは重複している可能性がありますが、投稿に印を付ける前に前の回答にリンクしてください。 – mindtonic

答えて

44

最も簡単な方法両方に一致するように

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

および

^[0-9]{3}-[0-9]{3}-[0-9]{4}$ 

交代(...|...))を使用することです:2主に、個別のオプションとしてそれらを指定します。

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

ところで、アメリカ人はカッコ内にエリアコードを入れたときに、私たちが実際に置くのその後のスペース。たとえば、(123)123-1234ではなく、(123) 123-1234と書いておきます。だから、書きたいことがあります

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

(それは明示的にあなたが電話番号はであることを期待フォーマットを示すために、おそらく最高だけど。)

+0

上記の式は(000)000-0000をどのようにして成功させるのですか? – HaBo

+2

@HaBo:なぜそれを避けたいですか? – ruakh

+4

は有効な電話番号ではないため、 – HaBo

関連する問題