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

标签 javascript regex

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

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

最佳答案

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

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

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

可以进一步缩短为:

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

感谢 @idealmachine 比我更快地提供了此代码。

关于javascript - 找到一种方法来不匹配正则表达式中包含@的网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4283972/

相关文章:

c# - 删除从客户端发送的值列表

javascript - 处理 Angular js 中的下拉菜单

javascript - 如何在点击功能上调用javascript方法?

ios - 使用正则表达式验证字符串

java - 如何在 Java RegEx 中匹配组中的转义字符

python - 提取第二个和第三个下划线之间的字符串

javascript - 我可以将带有 JS 的图像 "pre-load"用作 CSS 背景图像吗?

javascript - 如何使用php在不同文件夹中上传不同大小的相同文件?

javascript - 正则表达式在JS中排除符号前的字符

regex - 匹配双引号、多个捕获组之间的所有内容