首先,来看js通过正则验证URL参数的例子,如下:
<script> //正则解析URL参数 //by www.jb200.com var url = "http://127.0.0.1/e/action/ShowInfo.php?classid=9&id=2";//定义变量 function parse_url(_url){ //定义函数 var pattern = /(w+)=(w+)/ig;//定义正则表达式 var parames = {};//定义数组 url.replace(pattern, function(a, b, c){parames[b] = c;}); /*.当replace匹配到classid=9时.那么就用执行function(a,b,c);其中a的值为:classid=9,b的值为classid,c的值为9;(这是反向引用.在定义 正则表达式时有两个子匹配.)然后将 数组的key为classid的值赋为9;然后完成.再继续匹配到id=2;此时执行function(a,b,c);其中a的值为:id=2,b的值为id,c的值为2;然后将数组的key为id的值赋为2.*/ return parames;//返回这个数组. } var parames = parse_url(url); alert(parames['classid'] + ", " + parames['id']);//最后打印.根据key值来打印数组对应的值 </script>
再来看下,JS验证URL函数的正则实例。
以下代码,应用javascript的正则,可以实现:
验证的情况包括IP,域名(domain),ftp,二级域名,域名中的文件,域名加上端口!用户名等。
代码:
<script> //验证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); } } //验证URL的方法二 function CheckUrl(str) { var RegUrl = new RegExp(); RegUrl.compile("^[A-Za-z]+://[A-Za-z0-9-_]+.[A-Za-z0-9-_%&?/.=]+$");//www.jb200.com if (!RegUrl.test(str)) { return false; } return true; } </script>