Javascript正则表达式用于不带http的url

标签 javascript regex

如何修改下面的正则表达式,以便不带“http://”、“https://”、“ftp://”或“mailto://”的网址仍然有效?正则表达式取自 validator.js

var url = 'www.test.com';
isURL(url);

function isURL(url) {
     var urlRegex = '^(?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$';
     var urlT = new RegExp(urlRegex, 'i');
     if(!(url.length < 2083 && urlT.test(url)))
     {
         alert("invalid url");
     }
     else
     {
         alert("valid url");
     }
}

最佳答案

验证 URL 的奇怪要求。

但是您可以通过使用 ? 使 (?:(?:http|https|ftp)://) 可选,就像这样 (? :(?:http|https|ftp)://)?

关于Javascript正则表达式用于不带http的url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43547697/

相关文章:

javascript - 从距顶部 30px 处开始滚动 div

javascript - 如果无法 ping 通 URL,则更改 div 的类。 (测试站点是否关闭)

regex - 如何编写搜索模式的 shell 脚本

javascript - 用于匹配一组单词的正则表达式

c# - 在 javascript 中捕获从 C# Web 服务抛出的异常

javascript - 将所需的输入附加到现有表格中

regex - grep "Exception"但根据上一行过滤掉一个特定情况

regex - 验证Active Directory默认密码复杂性的正则表达式

javascript - 在表格内分隔 D3 饼图

java - 正则表达式多行html代码?