【问题标题】:Validate url using regexp in javascript在 javascript 中使用正则表达式验证 url
【发布时间】:2014-07-30 00:25:01
【问题描述】:

我有一个字符串来验证它是否是一个有效的 url。 我已经google了,如果url包含http or https,我只能找到解决方案

我想把网址设为valid,即使它的域名example -> www.google.com前面不包含http

这些是我尝试过的一些网址,它们确实有效。

http://blog.mattheworiordan.com/post/13174566389/url-regular-expression-for-links-with-or-without-the
http://stackoverflow.com/questions/37684/how-to-replace-plain-urls-with-links
http://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-an-url

但即使我给h/www.stackoverflow.com 这不是一个有效的网址,他们也会验证它是真实的 /www.stackoverflow.com 也验证为 true

它们不是有效的网址。谁能帮我写正则表达式。 我想自己写这个常规的exp 但我找不到关于正则表达式的好教程。我几乎无法写出诸如包含一个字符,一点点小字符之类的表达式。

我相信这是我有点弱的领域,我想练习一些正则表达式。任何帮助是极大的赞赏。

请帮助我验证此网址。

更新

 ((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-_]*)?\??(?:[\-\+=&;%@\.\w_]*)#?(?:[\.\!\/\\\w]*))?)

这是我目前使用的正则表达式

我恳请您制作一个 js fiddle,这会使 h/www.stackoverflow.com 变为 false。抱歉,没有一个答案无效。

【问题讨论】:

  • 请发布您现在得到的正则表达式。
  • 所以将第一部分设为可选...
  • @Xatenev 刚刚更新了它。

标签: javascript php regex


【解决方案1】:

如果 URL 是字符串,您可以使用替代方法来匹配它们。

var x;
try {
    var t = new URL( yourStringHere );
    x = true;
}
catch( e ) {
    x = false;
}

【讨论】:

    【解决方案2】:

    您可以使用它(适用于以 www 开头的网址。)

    function ValidURL(str) {
      var pattern = new RegExp('(?:https?:\/\/|www\.)+[a-z0-9\-\.]+\.[a-z]{2,5}(?:(?:\/|#|\?)[^\s]*)?','i');
      if(!pattern.test(str)) {
        return false;
      } else {
        return true;
      }
    }
    

    【讨论】:

    • 未捕获的语法错误:无效的正则表达式:/(?:https?://|www.)+[a-z0-9-.]+.[az]{2,5}(? :(?:/|#|?)[^s]*)?/: 没什么好重复的
    猜你喜欢
    • 2013-08-24
    • 2012-03-29
    • 2014-06-02
    • 2021-02-24
    • 1970-01-01
    • 2012-01-24
    • 2012-11-08
    • 1970-01-01
    相关资源
    最近更新 更多