[英]Regex to match substring containing 18 digits but don't match if it starts with @
[英]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.