gpt4 book ai didi

javascript - 为什么这个 javascript url 验证器失败?

转载 作者:行者123 更新时间:2023-12-03 09:54:30 25 4
gpt4 key购买 nike

我有以下代码来验证用户是否在文本框中输入了“有效”网址:

 function validateURL(textval) {
var urlregex = new RegExp(
"^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([0-9A-Za-z]+\.)");
return urlregex.test(textval);

}

用户收到错误,对于看似有效的 url 返回 false

http://a.website.com/issues/i#browse/TEST-111

有人可以确认为什么这个示例无法通过“有效网址”测试吗?

最佳答案

Can someone confirm why this example wouldn't pass the "valid url" test?

正则表达式的主要问题是 www. 部分在模式中是强制

如果您想使其成为可选,请使用 ? 修饰符及其周围的组 ((?:www\.)?):

^(?:(?:(?:ftp|https?):\/\/)?)(?:www\.)?[0-9A-Za-z]+(?:\.[0-9A-Za-z]+)*

这将匹配 http://a.website.com 部分。要匹配整个字符串,您可以使用:

^(?:(?:(?:ftp|https?):\/\/)?)(www\.)?[0-9A-Za-z]+(?:\.[0-9A-Za-z]+)*(?:\/[^\/]*)*$

参见demo

var re = /^(?:(?:(?:ftp|https?):\/\/)?)(www\.)?[0-9A-Za-z]+(?:\.[0-9A-Za-z]+)*(?:\/[^\/]*)*$/; 
var str = 'http://a.website.com/issues/i#browse/TEST-111';

if ((m = re.exec(str)) !== null) {
document.getElementById("res").innerHTML = m[0];
}
<div id="res"/>

关于javascript - 为什么这个 javascript url 验证器失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30781590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com