在javascript中需要有关正则表达式的帮助

时间:2016-07-06 07:56:05

标签: javascript html regex

我想在用户继续进行之前在javascript中验证url。

以下网址应匹配;

  • http://google.com
  • http://www.google.com
  • www.google.com
  • google.com

不匹配;

  • http://google
  • http://www.google
  • www.google
  • google

请帮我解决正则表达式真的很糟糕

2 个答案:

答案 0 :(得分:0)

试试这个

     var urlR = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)
       (?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;
     var url= content.match(urlR);

  var regex = new RegExp("^(http[s]?:\\/\\/(www\\.)?|ftp:\\/\\/(www\\.)?|www\\.){1}([0-9A-Za-z-\\.@:%_\+~#=]+)+((\\.[a-zA-Z]{2,3})+)(/(.)*)?(\\?(.)*)?");

     if(regex.test("http://google.com")){
      alert("Successful match");
    }else{
    alert("No match");
      }

答案 1 :(得分:0)

对正则表达式进行了一些研究以匹配URL 例如here

但为了匹配你问题中的有效问题,可以这样做:

var result = str.match(/^(?:https?:\/\/)?[a-z0-9.]+\.[a-z]{2,4}\/?$/i);

或者只是验证:

var reg = /^(?:https?:\/\/)?[a-z0-9.]+\.[a-z]{2,4}\/?$/i;
var isValid = reg.test(str);