我正在研究一些正则表达式模式
我有一个变量,
var url = "last_name=Ahuja&something@test.com";
该 url 包含 emailId。我有一个正则表达式模式来检查变量是否包含 emailId。
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
我的要求是: 我想要上述模式的精确否定(相反)。例如,如果 url 包含电子邮件模式,我的条件应该为 false。 我的意思是正则表达式模式应该是这样的。
有人可以帮我解决这个问题吗?
最佳答案
使用负向前瞻,您可以检查字符串开头是否没有电子邮件,这模仿了您想要的行为,因为您的正则表达式具有开始和结束 anchor 。
^(?!([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})+).)*$
查看解释here
但是您应该像 Jonathan 建议的那样在代码中执行此操作。
关于javascript - 以否定的方式正则表达式电子邮件模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48155203/