2010-08-10 100 views
0

我需要一個正則表達式:123,456,789,123,4444,..。基本上是逗號分隔的值。該INT部分可以是1-4號長,後面跟一個逗號......總是以這種形式...正則表達式int +逗號

/^([0-9]{1,4})(\,)?$/ 

這顯然是行不通的......

謝謝!

回答

2

嘗試這種情況:

/^[0-9]{1,4}(?:,[0-9]{1,4})*$/ 

這將匹配的一個或多個數字序列的任何逗號分隔序列與一至四個數字。 (?:…)是一個所謂的非捕獲組,它的匹配不能像「正常」捕獲組(…)那樣單獨引用。

3

嘗試這種情況:

/^\d{1,4}(?:,\d{1,4})*+$/D 

這將匹配任何逗號分隔的一個或多個數字序列的序列與一至四個數字。 D修飾符可確保任何結尾的換行符不會錯誤地導致正匹配。

+1

請不要顯而易見地複製我的答案。 – Gumbo 2010-08-10 12:11:56

+0

'* +'是什麼?這是一個錯字,還是我不知道的結構? – 2010-08-10 12:12:45

+1

@Gumbo,no。爲什麼*隱藏*我複製了你的答案? – salathe 2010-08-10 12:13:54