Javascript替换数组中的空格

时间:2011-03-28 16:57:30

标签: javascript arrays replace

我对PHP很好,但对Javascript一无所知,所以我不知道如何继续这里。我正在尝试用第3行中的“+”替换空格。任何人都知道它为什么不起作用?谢谢!

var tn_dv_suggestions = new Array();
for(var tn_counter=0; tn_counter < tn_top_performers.length; tn_counter++)
tn_top_performers[tn_counter]=tn_top_performers[tn_counter].replace(" ","+");
tn_dv_suggestions.push("<a style='font-family: Verdana, Arial; font-size: 14px;' target='_blank' href='http://www.<?=$siterow['Domain']?>/Buy-"+escape(tn_top_performers[tn_counter]) +"-<?=urlencode($siterow['CitySearchName'])?>-Tickets' >"+tn_top_performers[tn_counter] +"</a><br />");
document.getElementById('tn_dv_suggestions089hZ').innerHTML=tn_dv_suggestions.join('');

4 个答案:

答案 0 :(得分:3)

这是使用array.map的解决方案:

var replaceInArray = function(str){
  return str.replace(/\s+/g, "+")
}

var arr = ["Summer is Great", "Winter is terrible"]

arr.map(replaceInArray);
// returns => ["Summer+is+Great", "Winter+is+terrible"]

你的问题是你只是替换了第一个“”。要解决此问题,请使用全局标记,将g与正则表达式一起使用。

答案 1 :(得分:1)

您可能只替换找到的第一个空格。要替换所有这些,你需要global标志。试试.replace(/\ /g, "+");

答案 2 :(得分:0)

在FF3和Chrome上测试过。

tn_top_performers[tn_counter]=tn_top_performers[tn_counter].replace(/ /g,"+");

编辑:不要忘记正斜杠之间的“”(空格)。

答案 3 :(得分:0)

你对String.replace()的使用很好。问题是你缺少围绕循环中所有语句的大括号。

固定代码:

var tn_dv_suggestions = new Array();
for (var tn_counter=0; tn_counter < tn_top_performers.length; tn_counter++) {
  tn_top_performers[tn_counter]=tn_top_performers[tn_counter].replace(" ","+");
  tn_dv_suggestions.push("<a style='font-family: Verdana, Arial; font-size: 14px;' target='_blank' href='http://www.<?=$siterow['Domain']?>/Buy-"+escape(tn_top_performers[tn_counter]) +"-<?=urlencode($siterow['CitySearchName'])?>-Tickets' >"+tn_top_performers[tn_counter] +"</a><br />");
}
document.getElementById('tn_dv_suggestions089hZ').innerHTML=tn_dv_suggestions.join('');