我想将一段网页路径的参数打包成类的形式
譬如 如下的路径 “file:///C:/Users/Ghostalker/Desktop/b/d.htm?username=12abc&pwd=123”username=12abc&pwd=123 我视为传入这个页面的参数。
我编写了下面一段代码
(function()
{
var argv_strnjr="";
argv_strnjr=window.location.search;
document.argv=new Object();
document.argv["argc"]=0;
if(argv_strnjr==""){
return -1;
} try{
argv_strnjr.replace("?",""); ///// 关键在这里
var argArray=argv_strnjr.split("&");
if(argArray.length>0)
{
for(i=0;i<argArray.length;i++)
{
var name_value_array=argArray[i].split("=");
eval("document.argv[\""+name_value_array[0]+"\"]=\""+name_value_array[1]+"\"");
document.argv.argc++;
}
}
else{return -1;}
}catch(e)
{}
}
)();在上面的 window.location.search 中返回的是 包括 问号(?) 在内的一段字符串 本例中表示为 “?username=12abc&pwd=123 ”
我想用正则表达式的形式将这个问号去掉 就是用了 string 类型的 replace方法
尝试过
var regtmp=/\?/g;
argv_strnjr.replace(regtmp,"");
但是再用firebug调试 发现这里无论如何都不能被替换掉
但是 在 w3schools网站中的测试环境里面 都能很好的运行,谁知道
譬如 如下的路径 “file:///C:/Users/Ghostalker/Desktop/b/d.htm?username=12abc&pwd=123”username=12abc&pwd=123 我视为传入这个页面的参数。
我编写了下面一段代码
(function()
{
var argv_strnjr="";
argv_strnjr=window.location.search;
document.argv=new Object();
document.argv["argc"]=0;
if(argv_strnjr==""){
return -1;
} try{
argv_strnjr.replace("?",""); ///// 关键在这里
var argArray=argv_strnjr.split("&");
if(argArray.length>0)
{
for(i=0;i<argArray.length;i++)
{
var name_value_array=argArray[i].split("=");
eval("document.argv[\""+name_value_array[0]+"\"]=\""+name_value_array[1]+"\"");
document.argv.argc++;
}
}
else{return -1;}
}catch(e)
{}
}
)();在上面的 window.location.search 中返回的是 包括 问号(?) 在内的一段字符串 本例中表示为 “?username=12abc&pwd=123 ”
我想用正则表达式的形式将这个问号去掉 就是用了 string 类型的 replace方法
尝试过
var regtmp=/\?/g;
argv_strnjr.replace(regtmp,"");
但是再用firebug调试 发现这里无论如何都不能被替换掉
但是 在 w3schools网站中的测试环境里面 都能很好的运行,谁知道
解决方案 »
- 初学者问一个关于创建table的问题!!firefox可以成功显示,但是IE不行。。。。。。
- 新手请教一个XML文件加载兼容的问题
- form 能不能只提交数据 不打开页面?
- 关于调用外部js文件的奇怪问题
- JS 图片预加载的杠杠的简单的问题
- 简单问题,关注有分!
- 参数传递问题
- js控制的图片轮播benner怎么设置宽度 将图片拉伸也行 调到100%宽
- 如何把<a>标签里面的参数传到另外一个html 标签里面 js传递参数
- 有人知道JQWidgets是怎么刷新的吗?
- js压缩有没有无错压缩啊?
- document.all与getElementById、getElementsByName、getElementsByTagName用法区别-getElemen
<script >
(function()
{
var argv_strnjr="";
argv_strnjr=window.location.search;
alert(argv_strnjr);
document.argv=new Object();
document.argv["argc"]=0;
if(argv_strnjr==""){
return -1;
} try{
argv_strnjr = argv_strnjr.replace("?",""); ///// 关键在这里,你替换掉之后返 回的值必须赋给它啊
alert(argv_strnjr);
var argArray=argv_strnjr.split("&");
if(argArray.length>0)
{
for(i=0;i<argArray.length;i++)
{
var name_value_array=argArray[i].split("=");
eval("document.argv[\""+name_value_array[0]+"\"]=\""+name_value_array[1]+"\"");
document.argv.argc++;
}
}
else{return -1;}
}catch(e)
{}
}
)();
</script>
argv_strnjr = argv_strnjr.replace("?",""); ///// 关键在这里
因为replace函数是不会改变原字符串的值的,所以你必须将返回的值赋值给原来的变量,这样比较兼容些
var reg = /\?/g;
alert("index.html?username=12abc&pwd=123".replace(reg," "));