我想在用户继续进行之前在javascript中验证url。
以下网址应匹配;
http://google.com
http://www.google.com
www.google.com
google.com
不匹配;
http://google
http://www.google
www.google
google
请帮我解决正则表达式真的很糟糕
答案 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);