//var reg = /\?(?:size|[^&]+&size)=([^&]*)/;
var src = "index.htm?size=small&color=red";
我希望把src的值变成 var src = "index.htm?size=large&color=red";
求代码。

解决方案 »

  1.   

    try...
    <script type="text/javascript"> 
    var src = "index.htm?size=small&color=red";
    var reg = /size=[^&]+/i;
    var result = src.replace(reg, "size=large");
    document.write(result);
    </script>
      

  2.   

    严谨一点<script type="text/javascript"> 
    var src = "index.htm?size=small&color=red";
    var reg = /([&?])size=[^&]+/i;
    var result = src.replace(reg, "$1size=large");
    document.write(result);
    </script>
      

  3.   

    其实我想表达的是这个function replace(url, key, value){
      //......
    }replace("index.htm?size=xx", "size", "ff"); // return "index.htm?size=ff"
    replace("index.htm?size=xx&color=red", "color", "yellow"); // return "index.htm?color=yellow"请帮实现函数~~
      

  4.   

    楼主给的第二个例子的结果不对吧<script type="text/javascript"> 
    function replace(url, key, value)
    {
        var reg = new RegExp("([&?])" + escape(key) + "=[^&]+", "i");
        return url.replace(reg, "$1" + key + "=" + value);
    }
    document.write(replace("index.htm?size=xx", "size", "ff") + "<br>"); 
    document.write(replace("index.htm?size=xx&color=red", "color", "yellow") + "<br>"); 
    </script>
    /*---------输出---------
    index.htm?size=ff
    index.htm?size=xx&color=yellow
    */
      

  5.   


    var str = "index&size=f&.htm?color=ff"document.write(replace(str, "size", "ff") + "<br>");
    这种情况下好像输出不是很理想 lxcnn兄 能再帮我改下吗 谢谢。
      

  6.   


    这个输出是index&size=ff&.htm?color=ff
    想要什么结果,这种情况下不替换?<script type="text/javascript"> 
    function replace(url, key, value)
    {
        var reg = new RegExp("([&?])" + escape(key) + "=[^&]+(?![^?]*\\?)", "i");
        return url.replace(reg, "$1" + key + "=" + value);
    }
    document.write(replace("index.htm?size=xx", "size", "ff") + "<br>"); 
    document.write(replace("index.htm?size=xx&color=red", "color", "yellow") + "<br>"); 
    document.write(replace("index&size=f&.htm?color=ff", "size", "ff") + "<br>");
    </script>
      

  7.   

    请问 正则式里的  ?!  是什么意思??   // [^&]+(?![^?]*\\?) 中的
      

  8.   


    顺序否定环视,语法:(?!expression) 表示所在位置位侧不能匹配expression参考
    正则基础之——环视