2014-02-18 158 views
0

我有這樣的正則表達式表達var re = /(?:\d{3}|\(\d{3}\))([\w-\/\.]?)\d{3}\1\d{4}/;,但是,\w空白不會在這個測試console.log(re.test('123 456 7890'));JavaScript的正則表達式爲美國電話號碼

在這裏工作是我的jsfiddle:http://jsfiddle.net/Bqb22/

+0

@ M42這個正則表達式看起來很全面嗎?我不會稱之爲重複的。確實,OP可能從更全面的解決方案中受益,但這並不會使其變得重複。 –

+1

Psst,「美國」電話號碼在全洲範圍內,包括大部分加勒比地區。 –

+0

與您的問題不完全相關,但我建議您使用http://refiddle.com/來測試正則表達式。對於我來說,測試正則表達式比在代碼中更容易,更快速。 –

回答

8

你不應該使用\w爲空白。改爲使用\s。 (\w是單詞字符,與[0-9A-Za-z_]相同,不應用於指示空格)。

+0

哈哈。很好的快速編輯。我正在測試你以前的答案,它不工作。現在確實如此。證明在布丁中:'var a =「123 456 7890」; a.match(/(?:?\ d {3} | \(\ d {3} \))([。\ S - \/\])\ d {3} \ 1 \ d {4} /) ; //返回[「123 456 7890」,「」]'。 +1 BTW – Jess

+2

** \ s =空格**和** \ w =單詞**。但有時候你會認爲\ w是空格! ;) – Jess

+1

所以我正在看一張桌子並閱讀\ s的描述,但由於某種原因不斷鍵入\ w ... – Raptrex