使字符串以逗号分隔 JavaScript

Make string comma delimited in JavaScript

我有一个string:

var myStr = 'This is a test';

我想通过 JavaScript 将其设为逗号分隔,如下所示:

var myNewStr = 'This, is, a, test';

通过 JavaScript 完成此操作的最佳方法是什么?

我知道我可以 trim 像这样的逗号:

var myStr = myNewStr.split(',');

那会给我这个:

myStr = 'This is a test';

但我当然想做相反的事情,添加逗号...

试试这个 - var myNewStr = myStr.split(' ').join(', ')

您可以直接替换为正则表达式 - 它更短且无需拆分。

var myNewStr = myStr.replace(/ /g,', ');

如果您还可以面对带有前导/尾随空格的字符串,只需预先 trim 即可。

var myNewStr = myStr.trim().replace(/ /g,', ');

您可以使用具有正前瞻性的正则表达式,然后用逗号替换。

console.log('This is a test'.replace(/(?= .)/g, ','));
console.log('This is a test '.replace(/(?= .)/g, ','));

使用String.replace:

var myStr = 'This is a test';
var myNewStr=myStr.replace(/ /g,', ');

您可以使用替换功能将空格替换为逗号:

var myStr = myNewStr.replace(' ', ',');

您还可以使用:

var myStr = myNewStr.split(' ');

这是一种不使用标准方法的方法。

var myStr = "THIS IS A TEST";
before.innerHTML = myStr;
var parts = [];
var buffer = '';
for(var i = 0; i < myStr.length; i++) {
    if(myStr[i] == ' ') {
        parts.push(buffer);
        buffer = '';
        continue;
    } else {
        buffer += myStr[i];
    }
}

parts.push(buffer)
var myNewStr = parts.join(', ');

after.innerHTML = myNewStr;
<div><b>Before</b></div>
<div id="before"></div>
<div><b>After</b></div>
<div id="after"></div>

使用String.trimString.replace函数的解决方案:

var myStr = ' This is a test ',
    myNewStr = myStr.trim().replace(/([^\s]+\b)(?!$)/g, "$&,");
    // $& - Inserts the matched substring.      

console.log(myNewStr);  // "This, is, a, test"