Javascript分割空格分隔字符串并修剪额外的逗号和空格

时间:2012-06-26 15:51:19

标签: javascript string split trim

我需要拆分关键字字符串并将其转换为逗号分隔的字符串。但是,我需要摆脱额外的空格和用户已经输入的任何逗号。

var keywordString = "ford    tempo, with,,, sunroof";

输出到此字符串:

ford,tempo,with,sunroof,

我需要尾随逗号,最终输出中没有空格。

不确定我是否应该使用Regex或字符串拆分功能。

任何人都会这样做吗?

我需要使用javascript(或JQ)。

EDIT(工作解决方案):

var keywordString = ", ,, ford,    tempo, with,,, sunroof,, ,";

//remove all commas; remove preceeding and trailing spaces; replace spaces with comma

str1 = keywordString.replace(/,/g , '').replace(/^\s\s*/, '').replace(/\s\s*$/, '').replace(/[\s,]+/g, ',');


//add a comma at the end
str1 = str1 + ',';

console.log(str1);

6 个答案:

答案 0 :(得分:32)

在这两种情况下,您都需要一个正则表达式。您可以拆分并加入字符串:

str = str.split(/[\s,]+/).join();

这会分裂并消耗任何连续的空格和逗号。同样,您可以匹配并替换这些字符:

str = str.replace(/[\s,]+/g, ',');

对于尾随逗号,只需附加一个

str = .... + ',';

如果你有前面和后面的空格,你应该先删除它们。

参考: .split.replaceRegular Expressions

答案 1 :(得分:6)

除了Felix Klinganswer

之外
  

如果您有前面和后面的空格,则应删除   那些是第一个。

可以通过挂钩原型来为JavaScript String添加“扩展方法”。我一直在使用以下内容来修剪前面和后面的空格,到目前为止,这是一种享受:

// trims the leading and proceeding white-space
String.prototype.trim = function()
{
    return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
};

答案 2 :(得分:5)

ES6

var temp = str.split(",").map((item)=>item.trim());

答案 3 :(得分:0)

我会保持简单,只需匹配任何而非允许加入的内容:

bypass_through

这可以匹配所有间隙,无论中间有哪些不允许的字符。要删除开头和结尾的空条目,可以使用非空值的简单过滤器。请参阅detailed explanation on regex101



str.split(/[^a-zA-Z-]+/g).filter(v=>v);




答案 4 :(得分:0)

let query = "split me by space and remove trailing spaces and store in an array  ";
let words = query.trim().split(" ");
console.log(words)

输出: [ '分割','我','按','空格','和','删除','尾随','空格','和','存储','在','一个','数组' ]

答案 5 :(得分:-1)

如果您只想拆分,修剪加入保留空白,可以使用 lodash 执行此操作:

"msg": "C:\Log\1.txt"
// The string to fix
var stringToFix = "The Wizard of Oz,Casablanca,The Green Mile";

// split, trim and join back without removing all the whitespaces between
var fixedString = _.map(stringToFix.split(','), _.trim).join(' == ');

// output: "The Wizard of Oz == Casablanca == The Green Mile"
console.log(fixedString);