MzTreeView.prototype.getAttribute = function(source, name)
{
var reg = new RegExp("(^|;|\\s)"+ name +"\\s*:\\s*([^;]*)(\\s|;|$)", "i");
if (reg.test(source)) return RegExp.$2.replace(/[\x0f]/g, ";"); return "";
};
见过这个函数没有?梅老大写的
功能有点不同,他是用这个来取name参数的值的,你给变成替换就行了
{
var reg = new RegExp("(^|;|\\s)"+ name +"\\s*:\\s*([^;]*)(\\s|;|$)", "i");
if (reg.test(source)) return RegExp.$2.replace(/[\x0f]/g, ";"); return "";
};
见过这个函数没有?梅老大写的
功能有点不同,他是用这个来取name参数的值的,你给变成替换就行了
解决方案 »
- 急急急:JavaScript连接本地SQLite数据库!!!
- 问一个点击问题
- 在网页中如何实现图片的左右移动,上下移动,且移动时图片具有放大效果,移动均用键盘控制
- js 在 firefox下面使用 xmlhttprequest 对象调用方法open出错 错误: uncaught exception: (¹Õ XMLHttpRequest.open ö
- 修改iFrame.src的奇怪问题
- 类似淘宝,当页面出现滚动条,点击回到顶部。
- 如何禁止对文件域的手工输入,必须选择文件
- javascript中open函数怎么样判断一个文件是否存在啊?
- 在JS中函数参数的地址引用如何表示?
- 无法连接数据库
- 层与框架的问题
- 提示浏览器插件下载对话框
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<script>
function getNewUrl(oldurl,paramname,pvalue){
var reg = new RegExp("(\\?|&)"+ paramname +"=([^&]*)(&|$)","gi");
var t=oldurl.match(reg)[0];
var retxt=t.substring(0,t.indexOf("=")+1)+pvalue;
if(t.charAt(t.length-1)=='&') retxt+="&";
return oldurl.replace(reg,retxt);
}
alert(getNewUrl("http://servername/virturlpath/index.asp?p1=123&p2=aa&p3=hh&p4=1","p4","cxz"));
</script></head>
<body></body>
</html>
-----------------------
<script>
function aa(source, name)
{
var reg = new RegExp("(^|\\?|&)"+ name +"=([^&]*)(\\s|&|$)", "i");
if (reg.test(source)) return RegExp.$2; return "";
};
alert(aa("http://community.csdn.net/Expert/topic/4223/4223277.xml?temp=6.502932E-02", "temp"))
</script>
你的这个函数很好,只是如果要做成通用的函数,必须处理给出的参数是否合法。
如我调用 alert(getNewUrl("http://servername/virturlpath/index.asp?p1=123&p2=aa&p3=hh&p4=1","a4","cxz"));将会发生错误,正常的处理结果应该是返回原url值.可以改进一下么?
<script>
function getNewUrl(oldurl,paramname,pvalue){
var reg = new RegExp("(\\?|&)"+ paramname +"=([^&]*)(&|$)","gi");
var pst=oldurl.match(reg);
if((pst==undefined) || (pst==null)) return oldurl;
var t=pst[0];
var retxt=t.substring(0,t.indexOf("=")+1)+pvalue;
if(t.charAt(t.length-1)=='&') retxt+="&";
return oldurl.replace(reg,retxt);
}
alert(getNewUrl("http://servername/virturlpath/index.asp?p1=123&p2=aa&p3=hh&p4=1","a4","cxz"));
</script>
我刚才又想起一个问题,该函数是否可以再加一个参数flag,用来设置要替换的参数如果不存在于url时的情况。如flag=0时返回原url值,如果为flag=1时,在原url中增加该参数。如:
getNewUrl("http://servername/virturlpath/index.asp?p1=123&p2=aa&p3=hh&p4=1","a4","cxz");
它将返回"http://servername/virturlpath/index.asp?p1=123&p2=aa&p3=hh&p4=1&a4=cxz"getNewUrl("http://servername/virturlpath/index.asp","a4","cxz")
它将返回"http://servername/virturlpath/index.asp?a4=cxz"这主要是判断原url的格式了。高手们不妨试一试。
//SetQueryString(URL模板,索引,值);
function SetQueryString(urlStr,QName,QValue){
if(urlStr.indexOf('?')<0){
return urlStr+'?'+QName.toUpperCase()+'='+QValue;
}else{
if(urlStr.toUpperCase().indexOf(QName.toUpperCase()+'=')<0){
return urlStr+'&'+QName.toUpperCase()+'='+QValue;
}else{
var oReg=new RegExp(QName+'\=[^\\&]*','ig');
return urlStr.replace(oReg,QName.toUpperCase()+'='+QValue);
}
}
}
function getNewUrl(oldurl,paramname,pvalue,flag){
var reg = new RegExp("(\\?|&)"+ paramname +"=([^&]*)(&|$)","gi");
var pst=oldurl.match(reg);
if((pst==undefined) || (pst==null)) return (flag==0)?oldurl:(oldurl+((oldurl.indexOf("?")==-1)?"?":"&")+paramname+"="+pvalue);
var t=pst[0];
var retxt=t.substring(0,t.indexOf("=")+1)+pvalue;
if(t.charAt(t.length-1)=='&') retxt+="&";
return oldurl.replace(reg,retxt);
}
alert(getNewUrl("http://servername/virturlpath/index.asp?p1=123&p2=aa&p3=hh&p4=1","a4","cxz",1));
</script>