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

javascript获取URL参数和参数值,根据键位修改其值

<script type="text/javascript">
<!--
var url = "http://www.baidu.com/?age=25&k=1&site=asp&abc=123;"

//javascript获取指定参数及其对应的值
function getParameter(paraStr, url)
{
??? var result = "";
??? //获取URL中全部参数列表数据
??? var str = "&" + url.split("?")[1];
??? var paraName = paraStr + "=";
??? //判断要获取的参数是否存在
??? if(str.indexOf("&"+paraName)!=-1)
??? {
??????? //如果要获取的参数到结尾是否还包含“&”
??????? if(str.substring(str.indexOf(paraName),str.length).indexOf("&")!=-1)
??????? {
??????????? //得到要获取的参数到结尾的字符串
??????????? var TmpStr=str.substring(str.indexOf(paraName),str.length);
??????????? //截取从参数开始到最近的“&”出现位置间的字符
??????????? result=TmpStr.substr(TmpStr.indexOf(paraName),TmpStr.indexOf("&")-TmpStr.indexOf(paraName));?
??????? }
??????? else
??????? {?
??????????? result=str.substring(str.indexOf(paraName),str.length);?
??????? }
??? }?
??? else
??? {?
??????? result="无此参数";?
??? }?
??? return (result.replace("&",""));?
}

alert(getParameter('age', url));
</script>

?

?

?

?

//根据键位修改其值
String.prototype.changeQuery = function(name,value){
? var reg = new RegExp("(^|)"+ name +"=([^&]*)(|$)");
? var tmp = name + "=" + value;
? if(this.match(reg) != null){
??? return this.replace(eval(reg),tmp);
? }
? else{
?? if(this.match("[\?]")){
???? return this + "&" + tmp;
?? }
?? else{
???? return this + "?" + tmp;
?? }
? }
}

var pageUrl= "http://www.baidu.com/?age=25&k=1&site=asp&abc=123;"

pageUrl.changeQuery("age",30);

alert(pageUrl);