我有一个用于验证网址的正则表达式。但我不想匹配包含字符“@”的网址。我该如何解决?
regexp = /((ftp|http|https):\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
答案 0 :(得分:4)
好吧,您可以随时首先使用字符串方法@
检查您的网址是否包含indexOf()
。如果它返回-1
以外的数字,则您的网址包含@
。如果没有,请继续使用正则表达式。
修改:您可以使用以下代码:
if( myString.indexOf('@') == -1 && myString.match(regexp)) {
return true;
}
else {
return false;
}
可以进一步缩短为:
return myString.indexOf('@') == -1 && myString.match(myString);
感谢@idealmachine以比我更快的速度提供此代码。
答案 1 :(得分:0)
应该这样做:
regexp = /((ftp|http|https):\/\/)?[^\/:\s]+(:[0-9]+)?(\/[^@]*)?/;