我有string
:
var myStr = 'This is a test';
我想通过JavaScript
以逗号分隔,如下:
var myNewStr = 'This, is, a, test';
通过JavaScript
完成此操作的最佳方式是什么?
我知道我可以像这样修剪逗号:
var myStr = myNewStr.split(',');
这会给我这个:
myStr = 'This is a test';
但我当然希望通过添加逗号来做相反的事情......
答案 0 :(得分:3)
你可以用正则表达式替换它 - 它更短,不需要拆分。
var myNewStr = myStr.replace(/ /g,', ');
如果你还可以面对带有前导/尾随空格的字符串,只需事先修剪它。
var myNewStr = myStr.trim().replace(/ /g,', ');
答案 1 :(得分:2)
试试这个 - var myNewStr = myStr.split(' ').join(', ')
答案 2 :(得分:1)
您可以使用具有正向前瞻的正则表达式,然后用逗号替换。
console.log('This is a test'.replace(/(?= .)/g, ','));
console.log('This is a test '.replace(/(?= .)/g, ','));
答案 3 :(得分:0)
使用String.replace
:
var myStr = 'This is a test';
var myNewStr=myStr.replace(/ /g,', ');
答案 4 :(得分:0)
您可以使用replace函数用逗号替换空格:
var myStr = myNewStr.replace('',',');
你也可以使用:
var myStr = myNewStr.split('');
答案 5 :(得分:0)
这是一种不使用标准方法的方法。
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>
答案 6 :(得分:0)
使用String.trim
和String.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"