这个url的正则表达式判断的JavaScript!比较全面的。它验证的情况包括IP,域名(domain),ftp,二级域名,域名中的文件,域名加上端口!用户名等等信息,貌似作者也是在网上找的,我从一个项目代码中扣出来的,是我见过的最强最全面的url验证方式!太猛了,贴在这里与大家共享先,以后不记得的时候来博客上找找,URL的验证实在是很频繁。
function IsURL(str_url){ var strRegex = "^((https|http|ftp|rtsp|mms)?://)" + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp的user@ + "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184 + "|" // 允许IP和DOMAIN(域名) + "([0-9a-z_!~*'()-]+\.)*" // 域名- www. + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名 + "[a-z]{2,6})" // first level domain- .com or .museum + "(:[0-9]{1,4})?" // 端口- :80 + "((/?)|" // a slash isn't required if there is no file name + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$"; var re=new RegExp(strRegex); //re.test() if (re.test(str_url)){ return (true); }else{ return (false); } }
感谢收集者和原作者,虽然我不知道是谁,非常感激~~
是很不错,现在字母大小写敏感,对于那些把ID base64编码后的URL 验证不过去,var re=new RegExp(strRegex, ‘i’);
[Reply]
>IsURL(“asdf”)
>true
[Reply]
我怎么随便输入就返回是真呢?是我不会使用还是有真的问题呢?
[Reply]
fg
[Reply]
试试这个怎么样:
var strRegex = “^((https|http):\/\/)?”
+ “(((([0-9]|1[0-9]{2}|[1-9][0-9]|2[0-4][0-9]|25[0-5])[.]{1}){3}([0-9]|1[0-9]{2}|[1-9][0-9]|2[0-4][0-9]|25[0-5]))” // IP形式的URL- 199.194.52.184
+ “|”
+ “([0-9a-zA-Z\u4E00-\u9FA5\uF900-\uFA2D-]+[.]{1})+[a-zA-Z-]+)” // DOMAIN(域名)形式的URL
+ “(:[0-9]{1,4})?” // 端口- :80
+ “((/?)|(/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+/?)$”;
[Reply]