【问题标题】:replace spaces with commas with javascript用javascript用逗号替换空格
【发布时间】:2021-08-24 23:15:34
【问题描述】:

我有一个带有关键字的字符串,我需要检查这个字符串是否包含空格,如果是的话,用逗号替换它们。
字符串可以是“keyword1 keyword2,keyword3 keyword4,keyword5”
或任何其他空格和逗号的组合。 最终结果应该是由逗号分隔的关键字字符串,没有任何空格
如下所示“keyword1,keyword2,keyword3,keyword4,keyword5”
为此我尝试做$("#strId").split('').join(',')
这完成了工作,但我注意到如果我的字符串在每个关键字之间包含多个空格,我会得到多个逗号:
原始字符串=(关键字1关键字2关键字3)
结果字符串 =(keyword1,,,,,,keyword2,,,,,,keyword3)
我需要它在每个单词之间只有一个逗号。 我将感谢您在此问题上的帮助

谢谢

【问题讨论】:

标签: javascript jquery


【解决方案1】:

按空格和逗号的任意序列分割:

str.split(/[ ,]+/).join(',')

您可能还想使用filter 删除空字符串:

str.split(/[ ,]+/).filter(function(v){return v!==''}).join(',')

另一种解决方案是匹配任何不包含空格或逗号的序列:

str.match(/[^ ,]+/g).join(',')

【讨论】:

  • 感谢第一个 str.split(/[ ,]+/).join(',') 完成了这项工作
【解决方案2】:

使用String.replace() method

var newString = yourString.replace(/[ ,]+/g, ",");

这表示用单个逗号替换一行中的一个或多个空格或逗号的任何序列,因此您可以使用逗号周围有空格的字符串,例如"test, test,test test test , test"

(注意:如果您想允许除空格之外的其他空白字符,请在正则表达式中使用\s/[\s,]+/g

【讨论】:

    【解决方案3】:
    alert("test test, test".replace(/[ ,]+/g, ","))
    

    http://jsfiddle.net/yeefR/

    干杯!

    【讨论】:

      【解决方案4】:

      使用正则表达式应该可以正常工作并处理任意数量的空格:

      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
      <div id="strId">keyword1 keyword2 ,keyword3 keyword4,keyword5</div>
      <script>
      
      var arr = $("#strId").html().split(/\s+,|\s+/).join(',');
      alert(arr);
      
      </script>
      

      另外,仅供参考:split() 是一个 javascript 函数,在没有 jquery 的情况下也可以正常工作。

      【讨论】:

        【解决方案5】:

        不使用过滤器也可以正常工作

        var input = $("#seperate").val();
        var output = input.split(" ").join(';');
        

        【讨论】:

          【解决方案6】:

          您可以轻松地使用替换方法表单字符串。你不必使用 jQuery 看看http://w3schools.com/jsref/jsref_replace.asp

          【讨论】:

            【解决方案7】:

            试试这个代码

            var text = '           ,        x  ,x,   x,x abc,x,             x                    ,xxxxxx                  ,             ';
            
            text = text.replace(/(\s+)?,(\s+)?/g, ',');
            console.log(text);
            // => ,x,x,x,x abc,x,x,xxxxxx,
            
            var values = text.split(',').filter(value => value);
            console.log(values);
            // => ["x", "x", "x", "x abc", "x", "x", "xxxxxx"]

            【讨论】:

              猜你喜欢
              • 2015-01-13
              • 1970-01-01
              • 1970-01-01
              • 2014-10-31
              • 1970-01-01
              • 2013-12-10
              • 2017-11-18
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多