js 怎么用正则找到串中指定的内容

1.字符串str="zz=aaa,bb=bbb,cc=ccc;User=ZZZ&zz=aaa1&bb=bbb1&cc=ccc1"
2.要实现的是 例如我传入参数 zz,则找到 User=ZZZ后面的 zz=aaa1中的aaa1的值,这个对应的正则怎么书写呢?

阅读 3k
5 个回答
/User=ZZZ.*zz=(\w+)/
str="zz=aaa,bb=bbb,cc=ccc;User=ZZZ&zz=aaa1&bb=bbb1&cc=ccc1";
    function find(str){
        var reg=/([^?=&]+)=([^?=&]+)/g;
        var result=null;
        var o={};
        while((result=reg.exec(str))!=null){
            o[result[1]]=result[2];
        }
        return function getByName(name){
            return o[name];
        }
    }
    var s=find(str);
    console.log(s('zz'),s('cc'));

因为你对问题没有准确的描述,所以可能别人写出的规制式不适合的。

function getValue(str,filed){
var regex=new RegExp("&"+filed+"=([^&]*)","g");
var match=null;
var result=[];
while((match=regex.exec(str))!=null){
    result.push(match[1]);
}
return result;
}

var str="zz=aaa,bb=bbb,cc=ccc;User=ZZZ&zz=aaa1&bb=bbb1&cc=ccc1";
var filed="zz";
getValue(str,filed);
var str="zz=aaa,bb=bbb,cc=ccc;User=ZZZ&zz=aaa1&bb=bbb1&cc=ccc1";
var reg = /User=ZZZ&zz=(\w+)/;
var reg2 = /User=.*&zz=(\w+)/;   //不管User的值是多少

reg.exec(str)[1];     //返回aaa1
reg2.exec(str)[1];    //返回aaa1
推荐问题