2012-05-21 48 views
0

我試圖使用JavaScript來確保該字符串的模式來運行一個正則表達式檢查:如何編寫此JavaScript正則表達式?

NNNN-NNNN

(其中n =任意數量的0-9)我要肯定破折號也在。

所以,任何4個數字後跟一個破折號,後跟任意兩個數字後跟一個破折號,後跟任意兩個數字。

我該如何將它寫成正則表達式?

+0

你嘗試過什麼?這個正則表達式非常簡單直接,你卡在哪裏? –

回答

8

這就是:

^[0-9]{4}-[0-9]{2}-[0-9]{2}$ 
+2

+1,但無需在此處跳過連字符。 –

+0

你是對的,編輯':)' – sp00m

+1

好奇,這是得到這麼多upvotes - 這是不夠的兩個計數 - 沒有'^ $'錨,並沒有使用'\ d'而不是'[0-9] ' – Alnitak

0
\d{4}(-\d{2}){2} 

我認爲上述正則表達式將是合適的。

0

\ d {4} - \ d {2} - \ d {2} 我認爲這是相當簡潔

4

最簡單的正則表達式就是:

/^\d{4}-\d\d-\d\d$/ 

[\d\d比短\d{2}]

你不能忘記錨定正則表達式,否則它將匹配所有字符串包含該模式,不只是那些完全匹配它。

對於額外的善良,如果您打算隨後提取三個組件,使用此:

var re = /^(\d{4})-(\d\d)-(\d\d)$/; 
var test = "1234-56-78"; 
var vals = test.match(re); 

// vals = ['1234-56-78', '1234', '56', '78'];