Javascript 找到一种方法来克服';与正则表达式中包含@的URL不匹配
我有一个用于验证URL的正则表达式。但我不想匹配包含字符“@”的URL。我怎样才能解决这个问题Javascript 找到一种方法来克服';与正则表达式中包含@的URL不匹配,javascript,regex,Javascript,Regex,我有一个用于验证URL的正则表达式。但我不想匹配包含字符“@”的URL。我怎样才能解决这个问题 regexp = /((ftp|http|https):\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/; 首先,您可以使用字符串方法indexOf(),检查您的url是否包含@。如果返回的数字不是-1,则您的url包含@。如果没有,请继续使用正则表达式 编辑:您可以使用以下代码: if( myStrin
regexp = /((ftp|http|https):\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
首先,您可以使用字符串方法
indexOf()
,检查您的url是否包含@
。如果返回的数字不是-1
,则您的url包含@
。如果没有,请继续使用正则表达式
编辑:您可以使用以下代码:
if( myString.indexOf('@') == -1 && myString.match(regexp)) {
return true;
}
else {
return false;
}
可进一步缩短为:
return myString.indexOf('@') == -1 && myString.match(myString);
感谢@idealmachine比我更快地提供了这段代码。好吧,您可以首先使用字符串方法
indexOf()
检查您的url是否包含@
。如果返回的数字不是-1
,则您的url包含@
。如果没有,请继续使用正则表达式
编辑:您可以使用以下代码:
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]+)?(\/[^@]*)?/;
这应该做到:
regexp = /((ftp|http|https):\/\/)?[^\/:\s]+(:[0-9]+)?(\/[^@]*)?/;
+感谢你没有将正则表达式扩展到更难理解的混乱。你能给我举个例子吗?这是我的代码:regexp=/((ftp | http | https):\/\/)(\w+:{0,1}\w*@)(\S+)(:[0-9]+)(\/\/([\w#!:?+=&%@!\/]);如果(myString.match(regexp)){return true;}或者{return false;}一个例子是:
return myString.indexOf('@')=-1&®exp.test(myString)代码>+1,用于不将正则表达式扩展到可读性更低的混乱。您能给我举个例子吗?这是我的代码:regexp=/((ftp | http | https):\/\/)(\w+:{0,1}\w*@)(\S+)(:[0-9]+)(\/\/([\w#!:?+=&%@!\/]);如果(myString.match(regexp)){return true;}或者{return false;}一个例子是:return myString.indexOf('@')=-1&®exp.test(myString)代码>