Javascript 正则表达式错误匹配
我正在尝试使用正则表达式验证UrlJavascript 正则表达式错误匹配,javascript,regex,Javascript,Regex,我正在尝试使用正则表达式验证Url var url = "https://www,google.com"; var urlRegex = /(https|http)?:\/\/(?:\w[\-\w.]+)(?:\/[\-\w+&@#\/%=~_|!:,.;]*)?(?:\?[\-A-Z0-9+&@#\/%=~_|!:,.;]*)?/i; var result = urlRegex.test(url); 所以我得到的“result”为true,但我应该得到false,因为“url
var url = "https://www,google.com";
var urlRegex = /(https|http)?:\/\/(?:\w[\-\w.]+)(?:\/[\-\w+&@#\/%=~_|!:,.;]*)?(?:\?[\-A-Z0-9+&@#\/%=~_|!:,.;]*)?/i;
var result = urlRegex.test(url);
所以我得到的“result”为true,但我应该得到false,因为“url”包含逗号。
请提供帮助。添加锚定(^
用于字符串开头,而$
用于字符串结尾):
请参见添加锚定(^
了解字符串的开头,以及$
了解字符串的结尾):
请参见因为您的正则表达式部分匹配,所以您正在实现 使用
^(https | http)?:\/\/(?:\w[\-\w.]+)(?:\/[\-\w+&@\\/%=~(u124;!:,.;]*)?(?:\?[\-A-Z0-9+&-\w.]/%=~(u124;!:,.;)*)?(?:\?:?[\-A-Z0-9+&%=~(u124;)!:))?$
相反。因为正则表达式部分匹配,所以您得到的是真的 使用
^(https | http)?:\/\/(?:\w[\-\w.]+)(?:\/[\-\w+&@\\/%=~(u124;!:,.;]*)?(?:\?[\-A-Z0-9+&-\w.]/%=~(u124;!:,.;)*)?(?:\?:?[\-A-Z0-9+&%=~(u124;)!:))?$
相反。不客气。如果您需要在较大的文本中查找URL,则需要在模式周围使用
\b
,并在开头添加一个负面展望:(?!\S*,\b)
。欢迎使用。如果您需要在较大的文本中查找URL,则需要在模式周围使用\b
,并在开头添加一个负面展望:(?!\S*,\b)
。
^(https|http)?:\/\/(?:\w[\-\w.]+)(?:\/[\-\w+&@#\/%=~_|!:,.;]*)?(?:\?[\-A-Z0-9+&@#\/%=~_|!:,.;]*)?$
^ ^