Я работал над некоторым шаблоном регулярного выражения
У меня есть переменная,
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-адрес содержит шаблон электронной почты. Я имею в виду, что шаблон регулярного выражения должен быть таким образом.
Может кто-нибудь, пожалуйста, помогите мне в этом.
Используя отрицательный просмотр, вы можете проверить, не содержит ли строка в начале письма, которая имитирует поведение, которое вы хотите, с момента начала и конца привязки регулярного выражения.
^(?!([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})+).)*$
См. Объяснение здесь
Но вы должны просто сделать это в коде, как предлагает Джонатан.
Вместо того, чтобы отрицать ваше регулярное выражение, вы можете проверить, соответствует ли он.
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");
}