繁体   English   中英

找到一种不匹配正则表达式中包含@的网址的方法

[英]Find a way to don't match urls containing @ in regex

我有一个用于验证网址的正则表达式。 但我不想匹配包含字符“ @”的网址。 我该如何解决?

regexp = /((ftp|http|https):\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/; 

好吧,您始终可以使用字符串方法indexOf()首先检查您的网址是否包含@ 如果返回的数字不是-1 ,则您的网址包含@ 如果不是,请继续使用正则表达式。

编辑 :您可以使用以下代码:

if( myString.indexOf('@') == -1 && myString.match(regexp)) { 
    return true; 
} 
else { 
    return false; 
}

可以进一步缩短为:

return myString.indexOf('@') == -1 && myString.match(myString);

感谢@idealmachine提供的代码比我快。

那应该做:

regexp = /((ftp|http|https):\/\/)?[^\/:\s]+(:[0-9]+)?(\/[^@]*)?/;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM