Переделать это регулярное выражение - PullRequest
1 голос
/ 09 ноября 2010

У меня есть это регулярное выражение, чтобы помочь мне проверить ввод формы.

var nrExp = /^\d{6}\-\d{4}$/;

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

    012345-6789

Мне нужно, чтобы он также позволял это без знака минус И с пробелом вместо знака минус:

   0123456789
   012345 6789

Как я могу переделать это регулярное выражение, чтобы разрешить то, что я хочу?

Спасибо

Ответы [ 5 ]

4 голосов
/ 09 ноября 2010
/^\d{6}[- ]?\d{4}$/

Вам не нужно экранировать знак минус в скобках, поскольку он не дает диапазона.

2 голосов
/ 09 ноября 2010
/^\d{6}[ \-]?\d{4}$/
0 голосов
/ 09 ноября 2010

Конечно.Вы просто хотите сделать минус необязательным, наряду с парой других символов.

Попробуйте:

var nrExp = /^\d{6}(\-| )?\d{4}$/;

Обратите внимание на ? после (\-| ).Это позволяет, чтобы часть совпадения была необязательной.

0 голосов
/ 09 ноября 2010
var re = /^\d{6}[\- ]?\d{4}$/
console.log(re.test('012345-6789'));
console.log(re.test('012345 6789'));
console.log(re.test('0123456789'));
0 голосов
/ 09 ноября 2010

var nrExp = /^\d{6}\[\- ]?\d{4}$/;

Это должно сделать это - либо пробел, либо тире, необязательный для?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...