我正在尝试使用正则表达式来验证网址。
var url = "https://www,google.com";
var urlRegex = /(https|http)?:\/\/(?:\w[\-\w.]+)(?:\/[\-\w+&@#\/%=~_|!:,.;]*)?(?:\?[\-A-Z0-9+&@#\/%=~_|!:,.;]*)?/i;
var result = urlRegex.test(url);
所以我得到“结果”为真,但我应该得到假,因为“url”包含逗号。 请帮助。
答案 0 :(得分:2)
为字符串的开头添加锚点{^
,为字符串的结尾添加$
:
^(https|http)?:\/\/(?:\w[\-\w.]+)(?:\/[\-\w+&@#\/%=~_|!:,.;]*)?(?:\?[\-A-Z0-9+&@#\/%=~_|!:,.;]*)?$
^ ^
请参阅demo
答案 1 :(得分:2)
由于你的正则表达式部分匹配,你才会成真。
使用^(https|http)?:\/\/(?:\w[\-\w.]+)(?:\/[\-\w+&@#\/%=~_|!:,.;]*)?(?:\?[\-A-Z0-9+&@#\/%=~_|!:,.;]*)?$
代替。