如何使用JavaScript在循环中拆分逗号分隔的字符串和进程

DEV*_*OPS 46 javascript

如何使用JavaScript在循环中拆分逗号分隔的字符串和进程?

kzh*_*kzh 91

我的两分钱,添加修剪以删除sAc答案中留下的初始空格.

var str = 'Hello, World, etc';
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]);
}
Run Code Online (Sandbox Code Playgroud)

编辑:

在得到几个关于这个答案的赞成之后,我想重新审视这个问题.如果要在逗号上拆分并执行修剪操作,则可以在一个方法调用中执行此操作而不使用任何显式循环,因为这split也会将正则表达式作为参数:

'Hello, cruel , world!'.split(/\s*,\s*/);
//-> ["Hello", "cruel", "world!"]
Run Code Online (Sandbox Code Playgroud)

但是,此解决方案不会修剪第一个项目的开头和最后一个项目的结尾,这通常不是问题.

因此,要回答关于循环过程的问题,如果您的目标浏览器支持ES5数组附加项,例如mapforEach方法,那么您可以简单地执行以下操作:

myStringWithCommas.split(/\s*,\s*/).forEach(function(myString) {
    console.log(myString);
});
Run Code Online (Sandbox Code Playgroud)

  • 你可以添加一个修剪来处理前导/尾随空格''Hello,cruel,world!'.trim().split(/\s*,\ s*/)`.不会在IE8中工作 (5认同)

Sar*_*raz 28

像这样:

var str = 'Hello, World, etc';
var myarray = str.split(',');

for(var i = 0; i < myarray.length; i++)
{
   console.log(myarray[i]);
}
Run Code Online (Sandbox Code Playgroud)

  • @learner:`console.log` 是至少由 Firebug 和基于 WebKit 的浏览器公开的日志记录功能。它通常比弹出警报对话框的侵入性要小。一个缺点是您必须记住删除生产中的调用或定义一个空的“console.log”函数,因为它并非在任何地方都可用。 (2认同)

Ana*_*nax 9

请尝试以下代码段:

var mystring = 'this,is,an,example';
var splits = mystring.split(",");
alert(splits[0]); // output: this
Run Code Online (Sandbox Code Playgroud)

  • @Andy E:的确,在我阅读你的评论之前它已经修好了,但是很好地发现了. (2认同)