2014-09-19 64 views
1

我需要在javascript中驗證此字符串。Javascript正則表達式僅用於驗證「由逗號分隔的句子」

第二個參數的可用性限於R1,R2,R3,R4 第二個和第三個參數只能用逗號分隔,而第一個和第二個參數是空格。

req R1,1 //valid 
req R2,3 //valid 
req R0,1 //invalid 
req R1 1 //invalid 

我寫了這個:

/^req\sR1|R2|R3|R4[^,][0-9]+$/ 

但在少數情況下會失敗:

req R3 1 //supposed to be invalid, valid using above regex 
req R3.1 //supposed to be invalid, valid using above regex 

回答

2

刪除否定字符類,這R1|R2|R3|R4R1|R2|R3|R4不會做你需要的東西。您需要將其放入非捕獲組或捕獲組才能使其工作。像這樣的^req (?:R1|R2|R3|R4),\d+$您可以縮短低於

^req R[1-4],\d+$ 

DEMO

+0

這個表達式類似'\ s'匹配換行符 - 熱潮。 – nhahtdh 2014-09-19 05:54:09

+1

如果我使用''有人會來問你爲什麼不使用空間字符'\ s' – 2014-09-19 05:55:08

+0

的作品,謝謝!從來沒有意識到你可以做到這一點。 – aeros 2014-09-19 08:04:41

相關問題