【问题标题】:Make string comma delimited in JavaScript在 JavaScript 中使用逗号分隔字符串
【发布时间】:2016-06-16 18:52:22
【问题描述】:

我有一个string

var myStr = 'This is a test';

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

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

通过JavaScript 完成此任务的最佳方法是什么?

我知道我可以像这样修剪逗号:

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

这会给我这个:

myStr = 'This is a test';

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

【问题讨论】:

  • 如果'This is a test '这样的字符串末尾有一个尾随空格,应该变成'This, is, a, test, '吗?
  • @Roman 猜不,应该修剪。

标签: javascript string split delimiter comma


【解决方案1】:

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

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

如果您还可以面对带有前导/尾随空格的字符串,请事先修剪它。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      您可以使用正则表达式和正则表达式,然后用逗号替换 then。

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

      【讨论】:

        【解决方案4】:

        使用String.replace:

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

        【讨论】:

          【解决方案5】:

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

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

          你也可以使用:

          var myStr = myNewStr.split(' ');

          【讨论】:

          • 第一个只会用逗号替换第一个空格,不会再往前走,第二个返回一个数组,而不是一个字符串。
          【解决方案6】:

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

          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>

          【讨论】:

            【解决方案7】:

            使用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"
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2017-01-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-12-04
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多