【问题标题】:How to validate url?如何验证网址?
【发布时间】:2012-01-29 10:04:34
【问题描述】:

我想验证网址。 它应该接受:

http://google.com

http://www.google.com

www.google.com

google.com

我推荐Regex to match URL

但它不支持 google.com

【问题讨论】:

  • 您指出了一个有多个答案的问题。 使用哪个正则表达式?
  • @discky- 我认为您的答案介于 Tom van der Woerdt 和我所推荐的两者之间。如果缺少“http”,Tom 的建议将在前面加上我的建议验证 url 的其余部分。唯一的问题是,如果您需要“https”或“ftp”,那么用户需要指定,因此最好验证他们是否输入了正确的前缀。
  • 你正在使用 jQuery,并且 jQuery 有 URL 验证正则表达式例程 IIRC

标签: javascript jquery regex


【解决方案1】:

如果http:// 不存在,只需在前面加上,然后进行测试。

if (inputURL.substring(0,7) != 'http://' && inputURL.substring(0,8) != 'https://') {
    inputURL = 'http://' + inputURL;
}

不需要大型库或任何东西,只需几行代码。

【讨论】:

  • 如果您的网址少于 7 个字符会怎样? '
【解决方案2】:
function isUrl(s) {
    var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
    return regexp.test(s);
}

【讨论】:

  • 我认为你没有理解这个问题。
  • 我只是说这并不能回答问题。
  • @TomvanderWoerdt 您的评论没有回答他的问题。不要只是告诉别人“你错了”,试着用有用和有帮助的方式来解释事情。
【解决方案3】:

这是我认为应该用来验证网址的更好方法

reg = /https?:\/\/w{0,3}\w*?\.(\w*?\.)?\w{2,3}\S*|www\.(\w*?\.)?\w*?\.\w{2,3}\S*|(\w*?\.)?\w*?\.\w{2,3}[\/\?]\S*/
reg.test('www.google.com')    # will return true
reg.test('www.google')        # will return false

如果您仍然不正确,请告诉我。

【讨论】:

    【解决方案4】:

    这个简单的辅助方法使用正则表达式来验证 URL,并将传递您的每个测试用例。它还考虑了空格,因此 google.com/a white space/ 会失败。

        public static bool ValidateUrl(string value, bool required, int minLength, int maxLength)
        {
            value = value.Trim();
            if (required == false && value == "") return true;
            if (required && value == "") return false;
    
            Regex pattern = new Regex(@"^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$");
            Match match = pattern.Match(value);
            if (match.Success == false) return false;
            return true;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-20
      • 1970-01-01
      • 2014-01-16
      • 2011-03-18
      • 1970-01-01
      相关资源
      最近更新 更多