比如有这么一段代码<a href="@连接地址@" />
<img src="@图片地址@" />
<test xxx="@测试1@" /> <test xx="@测试2@" />用正则把所有 @...@中间的数据匹配出来?然后用户 可以得知这个集合的长度,内容。前台得到这样的效果
 连接地址:文本框
 图片地址:文本框
 测试1:文本框
 测试2: 文本框依次赋值,
最后把值返回 替换 @@中间的内容。请问怎么实现?急用,也没时间从js正则再学起了,麻烦大家帮帮忙。请大家举个例就行了,我研究研究

解决方案 »

  1.   


    var str='<a href="@连接地址@" /> <img src="@图片地址@" /> <test xxx="@测试1@" /> <test xx="@测试2@" />'
    var data=[];
    str.replace(/\"@(.+?)@\"/g,function($,$1) {
        data.push($1);
    });
    alert("数据"+data+"\n长度"+data.length);
      

  2.   

    谢谢楼上,有个地方不太明白function($,$1)
    这个参数是什么意思?
      

  3.   

    var reg = /@\w*@/g;
    var testVal = '<a href="@连接地址@" /> <img src="@图片地址@" /> <test xxx="@测试1@" /> <test xx="@测试2@" /> ';
    var testVal = "@dffd@@kdfjd@"
    var rslt = testVal.match(reg);
    for(var i=0;i<rslt.length;i++){
    rslt[i] = rslt[i].replace(/@/g,"");
    }
    alert(rslt);
      

  4.   

    var str='@test1@,@test2@,@test3@,@test4@'
    把@@中间的数据依次替换为1,2,3,4
    怎样写?
      

  5.   

    var str='@test1@,@test2@,@test3@,@test4@';
    str = str.replace(/@test/g,"").replace(/@/g,"");
    alert(str);