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

1

Я работал над некоторым шаблоном регулярного выражения

У меня есть переменная,

var url = "last_name=Ahuja&[email protected]";

URL содержит emailId. У меня есть шаблон регулярных выражений, чтобы проверить, содержит ли переменная emailId.

var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

Мое требование: я хочу точно отрицать (противоположно) вышеприведенного шаблона. Например, Мое условие должно быть ложным, если URL-адрес содержит шаблон электронной почты. Я имею в виду, что шаблон регулярного выражения должен быть таким образом.

Может кто-нибудь, пожалуйста, помогите мне в этом.

  • 1
    hackernoon.com/...
Показать ещё 1 комментарий
Теги:
regex-negation

2 ответа

0

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

^(?!([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+).*$

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

^((?!([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+).)*$

См. Объяснение здесь

Но вы должны просто сделать это в коде, как предлагает Джонатан.

0

Вместо того, чтобы отрицать ваше регулярное выражение, вы можете проверить, соответствует ли он.

var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
var url = "last_name=Ahuja&[email protected]";

if(-1 === url.search(filter))
{
    alert("Didn't find it");
}
else
{
    alert("Found it");
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню