有这么一段字符串:
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
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
return rs[2];又试了一下,改成这样,就行了。。那个正则表达式应该如何解读啊?
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') );
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";
var rs = new RegExp("(^|)" + str + "=([^\&]*)(\&|$)", "gi").exec(LocString),tmp;
if (tmp = rs)
alert(tmp[2]);
});
貌似木有问题啊 alert是222
var LocString = "http://192.168.40.224/htmlargu/demo.html?log_id=111&cat_id=222&page=333";
var qso = {};
LocString.replace(/([^\?\&]+)=([^\&]*)/ig,function(a,b,c){qso[b]=c});
alert(qso.log_id);
alert(qso.cat_id);
alert(qso.page);
var reg = new RegExp("[&?]"+ name + "=([^&#]*)","ig");
var res = [];
location.search.replace(reg, function($, $1) {
res.push(decodeURIComponent($1));
});
return res;//考虑到有可能是多个值,返回数组
}