有这么一段字符串:
http://192.168.40.224/htmlargu/demo.html?log_id=111&cat_id=222&page=333
上面是通过:
var LocString=String(window.document.location.href);
获取的。
然后我想构造一个函数,
function GetQueryString(str){
}
当传入关键字如“cat_id”的时候,能够返回它的值,如:
var cat_id = GetQueryString("cat_id")
这样就得到了cat_id = 222;
函数里面,我看别人的是:
function GetQueryString(str){
var rs=new RegExp("(^|)" +str+ "=([^\&]*)(\&|$)","gi").exec(LocString),tmp;
if(tmp=rs)return
tmp[2];
return "没有这个参数";
}
但运行结果是错误的,是别人写的正则表达式错了? 正确的正则表达式如何写啊,new RegExp的这一句是什么意思啊?太复杂了。。
正则表达式
JavaScript
------解决方案--------------------
function getQueryString(key) {
var regex_str = "^.+\\?.*?\\b"+ key +"=(.*?)(?:(?=&)
------解决方案--------------------
$
------解决方案--------------------
#)"
var regex = new RegExp(regex_str,"i");
var url = window.location.toString();
if(regex.test(url)) return RegExp.$1;
return null;
}
alert( getQueryString('cat_id') );
------解决方案--------------------
RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具
http://http://www.w3school.com.cn/js/jsref_obj_regexp.asp
$(function () {
var str = "cat_id";
var LocString = "http://192.168.40.224/htmlargu/demo.html?log_id=111&cat_id=222&page=333";