【问题标题】:Split comma-separated list and prepend character to each value拆分逗号分隔的列表并将字符添加到每个值
【发布时间】:2013-06-29 18:55:05
【问题描述】:

我想把“一、二、三、四、五”变成“$一、二、三、四、五”。

到目前为止,这是我用来分隔/分解逗号分隔列表的内容。

var str = 'one,two,three,four,five';
var str_array = str.split(',');

for(var i = 0; i < str_array.length; i++)
{
   // Trim the excess whitespace.
   str_array[i] = str_array[i].replace(/^\s*/, "").replace(/\s*$/, "");
   // Add additional code here, such as:
   alert(str_array[i]);
}

如何在每个值前添加一个字符并将它们作为空格分隔的列表输出? 把代码变成可以应用于字符串的函数会很棒。

【问题讨论】:

  • 如果使用正则表达式进行拆分,可以节省一点代码:.split(/\s*,\s*/)
  • '$' + 'one,two,three,four,five'.replace(/,/g, " $");

标签: javascript


【解决方案1】:

就这么简单:

'$' + ('one,two,three,four,five'.split(',').join(' $'))

这是一个函数,如果没有匹配则输出一个空字符串:

function (s) { 
  var a = s.split(',').join(' $'); 
  return a ? '$' + a : '';
}

【讨论】:

  • 您需要单独处理空数组的大小写,因为这将输出'$'
【解决方案2】:

使用+ 运算符和join

for(var i = 0; i < str_array.length; i++) {
    str_array[i] = 'a' + str_array[i];
}
var out_str = str_array.join(' ');

'a' 替换为您希望添加的任何字符。

【讨论】:

  • 并使用trim() 删除尾随和前导空格
  • @Yogu:IE8 不支持。只是说。
【解决方案3】:

我们也可以使用replace()

var str = 'one,two,three,four,five';
var str_array = str.split(',');

for (var i = 0; i < str_array.length; i++) {
    str = str.replace(',', '$');    
}
alert('$' + str);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多