替换多个空格,多次出现逗号

时间:2015-08-11 15:10:42

标签: javascript jquery regex

我正在尝试清理输入字段客户端。

当前价值

string = 'word, another word,word,,,,,, another word, ,,;

清洁后的期望值

string = 'word,another word,word,another word;

我尝试过的简化版http://jsfiddle.net/zg2e7/362/

3 个答案:

答案 0 :(得分:6)

您可以使用



var str = 'word,word,word,,,,,new word, , another word';
document.body.innerHTML = str.replace(/(?:\s*,+)+\s*/g, ',');




  1. 您需要使用g修饰符来查找和替换所有实例
  2. 您还需要匹配逗号之间和它们两边的可选空格。
  3. 正则表达式解释:

    • (?:\s*,+)+ - 1个或多个序列
      • \s* - 0个或更多空格字符
      • ,+ - 一个或多个逗号。

答案 1 :(得分:1)



string = 'word, another word,word,,,,,, another word, ,,';
console.log(string.replace(/(,)[,\s]+|(\s)\s+/g ,'$1').replace(/^,|,$/g,''));




答案 2 :(得分:0)

尝试使用splittrim以及mapjoin而不是正则表达式,因为正则表达式可能有点笨拙。

$.map(str.split(','),function(item,i){
    if(item.trim()){
        return item.trim()
    } 
}).join(',')

因此,将字符串拆分为,,然后使用map函数将它们组合起来。如果项目在修剪后具有值,则保留该值。然后在将其映射到有效值数组后,用逗号连接它们。