日期:2014-05-16  浏览次数:20381 次

求一句正则表达式~~~~~~~~~~~~
有这么一段字符串:
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";