大家好我正在使用javascript中的查询字符串构建一个url,如下所示,每个东西都可以正常工作但是查询字符串之间会有一个comm,所以有人可以帮助我
<script type="text/javascript">
function RedirectLocation() {
var cntrl = "Q1;Q2";
var str_array = cntrl.split(';');
var cnt = str_array.length;
if (cnt == 0) {
location.href = '/callBack.aspx';
}
else {
var arr = [];
for (var i = 0; i < str_array.length; i++) {
str_array[i] = str_array[i].replace(/^\s*/, "").replace(/\s*$/, "");
arr.push(str_array[i] + '=1');
if (i != str_array.length - 1) {
arr.push('&');
}
}
location.href = '/Sample.aspx?' + arr;
}
}
</script>
这给了我一个查询字符串,如下所示Sample.aspx?Q1=1,&,Q2=1
我需要它像`Sample.aspx?Q1=1&Q2=1
答案 0 :(得分:4)
不要依赖隐式字符串转换(将数组元素与逗号连接为分隔符),使用&
明确.join
数组元素:
var arr = [];
for (var i = 0; i < str_array.length; i++) {
str_array[i] = str_array[i].replace(/^\s*/, "").replace(/\s*$/, "");
arr.push(str_array[i] + '=1');
}
location.href = '/Sample.aspx?' + arr.join('&');
这样想:您有一组name=value
条目,您希望用&
分隔。
答案 1 :(得分:3)
要从字符串中删除逗号,您只需执行
s = s.replace(/,/g,'');
但在您的具体情况下,您想要的不是添加逗号。变化
location.href = '/Sample.aspx?' + arr;
到
location.href = '/Sample.aspx?' + arr.join('');
在字符串中添加一个数组会调用该数组上的toString
并且该函数会添加逗号:
""+["a","b"]
提供"a,b"
答案 2 :(得分:0)
您可以使用arr.join(glue)
将Array元素与其间的内容连接起来。在你的情况下,胶水将是一个空字符串arr.join("")
。