2010-08-10 4 views
0

Мне нужно регулярное выражение для: 123,456,789,123,4444,... в основном разделенные запятыми значения. INT часть может быть длиной 1-4 номера, а затем через запятую ... всегда в таком виде ...regex int + comma

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

Это, очевидно, не работает ...

Спасибо!

ответ

2

Попробуйте это:

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

Это будет соответствовать любой разделенной запятой последовательности из одного или нескольких последовательностей цифр от одного до четырех цифр. (?:…) - это так называемая группа без захвата, на которую нельзя ссылаться отдельно, как вы можете, с «нормальными» группами захвата (…).

3

Попробуйте это:

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

Это будет соответствовать любой разделенной запятой последовательности из одного или нескольких последовательностей цифр от одного до четырех цифр. Модификатор D гарантирует, что любой конечный символ новой строки не ошибочно приведет к положительному совпадению.

+1

Просьба сделать менее понятным, что вы скопировали мой ответ. – Gumbo

+0

Что такое '* +'? Это опечатка или конструкция, о которой я не знаю? –

+1

@Gumbo, no. Почему * скрыть *, что я скопировал ваш ответ? – salathe