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>
严谨一点<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>
<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>
var src = "index.htm?size=small&color=red";
var reg = /([&?])size=[^&]+/i;
var result = src.replace(reg, "$1size=large");
document.write(result);
</script>
//......
}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"请帮实现函数~~
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
*/
var str = "index&size=f&.htm?color=ff"document.write(replace(str, "size", "ff") + "<br>");
这种情况下好像输出不是很理想 lxcnn兄 能再帮我改下吗 谢谢。
这个输出是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>
顺序否定环视,语法:(?!expression) 表示所在位置位侧不能匹配expression参考
正则基础之——环视