Проверка формы regex.test (value) возвращает true, но работает так, как если бы это было false, идеи? - PullRequest
0 голосов
/ 29 июня 2011

довольно странная маленькая проблема, с которой я сталкиваюсь в этом простом скрипте проверки полей формы.

У меня есть 3 поля, 1 текстовый ввод для имени, 1 электронный адрес и 1 текстовая область для комментария.

По сути, сейчас происходит следующее: если вы пропустите какое-либо поле и нажмете submit, я назначу класс .error или .valid для соответствующего объекта dom.

Странно то, что если выпропустить одно из полей, например пропустить поле имени, заполнить остальные, нажать «Отправить», а затем попытаться ввести имя, при проверке, даже если оно распознает значение поля как передающее регулярное выражение (/.+/gi), оно будетпримените класс ошибки, поскольку он помечает поле как failed.

Любые идеи о том, что я делаю неправильно, будут высоко оценены.

Пример кода на JS Fiddle: http://jsfiddle.net/jannis/YXfZN/

Примечание. Эта ошибка возникает и воспроизводится в связанной скрипке в Chrome на Mac (версия 12.0.742.112).

Спасибо, что заглянули, жду ваших идей и предложений.

Яннис

1 Ответ

1 голос
/ 29 июня 2011

Это из-за флага g. Из-за этого ваше регулярное выражение стало липким. Та же проблема с этим: Регулярное выражение в JavaScript терпит неудачу каждый раз с идентичным вводом

Если вы протестируете этот код (regex[type].test( 'a' )) в консоли, вы всегда будете получать разные результаты.

Попробуйте еще раз без флага g.

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