javascript - 正则表达式错误匹配

标签 javascript regex

我正在尝试使用正则表达式来验证网址。

var url = "https://www,google.com";
var urlRegex = /(https|http)?:\/\/(?:\w[\-\w.]+)(?:\/[\-\w+&@#\/%=~_|!:,.;]*)?(?:\?[\-A-Z0-9+&@#\/%=~_|!:,.;]*)?/i;
var result = urlRegex.test(url);

所以我得到的“结果”为真,但我应该得到假,因为“url”包含逗号。 请帮忙。

最佳答案

添加 anchor (^ 用于字符串的开头,$ 用于字符串的结尾):

^(https|http)?:\/\/(?:\w[\-\w.]+)(?:\/[\-\w+&@#\/%=~_|!:,.;]*)?(?:\?[\-A-Z0-9+&@#\/%=~_|!:,.;]*)?$
^                                                                                                ^

参见 demo

关于javascript - 正则表达式错误匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30441151/

相关文章:

javascript - 服务器端 - 仅 CouchDB

javascript - 我在 JssorSlider 中面临 slider 元素重复问题

regex - 在 JMeter 中使用 RegEx 或 XPath 提取第二个 CDATA 内容

Java:按特殊字符和空格分割字符串

c# - 如何拆分文本文件每一行包含多个分隔符的字符串?

java - 正则表达式匹配,当目标字符串中存在向后移动的模式时?

javascript - 函数表达式有什么意义,它们似乎没用

javascript - Ember 计算属性不适用于服务器数据

python - 将列表与列进行匹配并从列中提取匹配值

javascript - 使用 JQuery 以不同的方式设置每个 <li> 的样式