2014-09-30 3 views
0

У меня возникла проблема с проверкой формы JavaScript. Я должен хранить номер в этом формате 1-74347064527 Я пробовал эти регулярные выражения, но не работал должным образом:Регулярное выражение с числами и тире

var srNo =/^[-0-9]*$/; 
var srNo = /^[0-9]+(-[0-9]+)+$/; 
var srNo=/^([0-9]+-)*[0-9]+$/; 

Предлагайте некоторое регулярное выражение для этого. С наилучшими пожеланиями.

+1

Что не так с '^ [0-9] + - [0-9] + $' или '^ \ d + - \ d + $'? – hwnd

+0

@hwnd Вы имеете в виду это var srNo =/^ \ d + - \ d + /; Правильно ? Это не работает ! – ABJ

+1

Это может помочь, если вы можете предоставить больше примеров или попыток. – hwnd

ответ

0

Когда в классе символов ([ ]), тире (-) имеет специальное значение в регулярных выражениях - это означает «диапазон», например. a-z средства from 'a' to 'z'. Вы не избегаете этого, поэтому ваши RegExps не совсем правильны (по крайней мере, не на каждом языке).

Update: Оказывается, что этот синтаксис является правильным, когда тир не окружен другими персонажами (если она расположена в начале или в конце класса символов). Извините за недопонимание.

Попробуйте вместо этого:

/^\d\-\d+$/ 

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

+0

Спасибо. Работает ! – ABJ

1

Это должно работать, если у вас есть дополнительные ограничения:

var srNo = /^\d+-\d+$/; 

Если вы предпочитаете [0-9] синтаксис:

var srNo = /^[0-9]+-[0-9]+$/;