использование регулярного выражения для проверки в jquery

#javascript #jquery #validation #email

Вопрос:

 $("#signUp").click(function(e){

var email= $('#email').val()
if(email=='' || email != "/^([a-zA-Z0-9_. -]) @(([a-zA-Z0-9-]) .) ([a-zA-Z0-9]{2,4}) $/"){
  $('#emailErr').html('**Invalid email')
  e.preventDefault();
} else {
  $('#emailErr').hide();
}
 

в чем тут ошибка? Это предотвращает кнопку отправки.

Ответ №1:

Ты пропускаешь закрытие parenthesis и еще curly bracket .

Добавление }); должно исправить.

Ответ №2:

Вы сравниваете содержимое входных данных с использованием регулярного выражения != . Это верно для каждой строки, которая буквально не равна регулярному выражению — она НЕ пытается соответствовать регулярному выражению, она сравнивает две строки, из которых одна является регулярным выражением. Единственный способ, чтобы сравнение было ложным, — это ввести регулярное выражение во входные данные.

Чтобы проверить, соответствует ли строка регулярному выражению, используйте

if (email.match(/^([a-zA-Z0-9_. -]) @(([a-zA-Z0-9-]) .) ([a-zA-Z0-9]{2,4}) $/))

Обратите внимание, что литералы регулярных выражений не содержат кавычек вокруг них.