Задать вопрос
IT_Highlander
@IT_Highlander

Как в регулярном выражении исключить слова JS?

Делаю валидацию поля input для почты, нужно проверить нет ли во введенном адресе слов gmail, yahoo и т.д. Замучался уже с этими регулярками, ни в какую не хочет. Пропускаю только те адреса, в которых нет слов. Как правильно регулярное выражение написать под это?
Часть кода, в котором вставлено:
isInvalid: function(input) {
	var illegalCharacters = input.value.match(/[^a-zA-Z ](?!gmail|yahoo)*/);
	return illegalCharacters ? true : false;
}


Суть проверки сводится к тому, чтобы отдать в переменную true если в поле отсутствует gmail, yahoo и еще по списку слова после @, и отдать false если они есть.

И если зyает кто нормальный мануал по регуляркам - поделитесь, те которые гуглятся содержат кучу инфы или не применимой в каких-то простых случаях или без примеров. А нужны банальности вот типа исключить слово, как объединять условия, как проверить только первый символ (типа + перед номером телефона) и т.п.
  • Вопрос задан
  • 251 просмотр
Подписаться 1 Средний Комментировать
Решения вопроса 1
erge
@erge
Примус починяю
Имхо, желательно делать проверку полнее, т.к. ну чисто теоретически такие слова могут быть в имени пользователя например, так же не делать инверсию результата, т.к. метод все же называется isInvalid

isInvalid: function(input) {
  return /@(gmail|yahoo)\.[a-z]+$/.test(input.value.trim().toLowerCase());
}


PS: если проверка НА валидность, то поставить !
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы