Regex | Ошибка проверки - PullRequest
4 голосов
/ 20 мая 2010

Я пытаюсь проверить номер мобильного телефона в США, так как я использую готовую библиотеку проверки JavaScript, я только что заменил эту проверку регулярного выражения на предыдущую, которая поставляется с библиотекой проверки.

регулярное выражение предыдущей проверки:

"telephone":{
"regex":"/^[0-9\-\(\)\ ]{10,10}$/",
"alertText":"* Invalid phone number"},

Это работает как 2126661234, но не в стандарте США.

После того, как я изменился:

"telephone":{
"regex":"/^[2-9]\d{2}-\d{3}-\d{4}$/",
"alertText":"* Invalid phone number"}, 

Теперь при каждой записи я получаю сообщение об ошибке, даже если я ввожу 212-666-1234 Я действительно не знаю, что не так, поэтому жду помощи.

Ответы [ 2 ]

4 голосов
/ 20 мая 2010

Вам нужно избежать обратной косой черты

"telephone":{
"regex":"/^[2-9]\\d{2}-\\d{3}-\\d{4}$/",
"alertText":"* Invalid phone number"}, 

/^[2-9]\d{2}-\d{3}-\d{4}$/ работает только в литералах регулярных выражений, как в

var r = /^[2-9]\d{2}-\d{3}-\d{4}$/;

Когда вы используете строки для инициализации регулярного выражения, вы должны избегать обратной косой черты

var r = new RegExp("^[2-9]\\d{2}-\\d{3}-\\d{4}$");
0 голосов
/ 20 мая 2010

Похоже, что оригинальное регулярное выражение экранирует знак -, например: \-.

Я не вижу, чтобы вы делали это во втором примере.

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