从不同格式的字符串中删除空格并将其转换为数组的最佳方法

时间:2016-08-18 10:48:17

标签: javascript arrays string

我有一个类似于搜索字符串的搜索功能。我将此字符串转换为数组。该字符串用逗号分隔两个单词。

理想格式:
搜索字词输入 = xyz,abc,eee,fff

现在,如果用户遵循我的格式,我可以使用split并获取我的数组但是如果:

搜索字词输入 = abc,xyz ,,,, eee
搜索词输入 = ,,, abc,xyz,eee,fff
或者沿着这些方向的东西

如果用户使用其他格式,我该如何摆脱额外的空格?唯一可以想到的是循环遍历数组并检查是否为空格并删除它。有更简单的方法或方法吗?

这就是我的 getArray 的样子 getArray = search-term-entered.split(", ");

5 个答案:

答案 0 :(得分:3)

如@RC所述,您可以找到如何过滤掉此站点上的空/空字符串的示例。但是为了修剪空白区域,您可以使用以下内容。

var s = ', ,, abc, xyz,eee,fff'; 
getArray = s.split(",").map(s => s.trim()).filter(s => s); 

答案 1 :(得分:2)

使用CustomFunction()函数的简单解决方案:

String.match

答案 2 :(得分:1)

像这样。



var str = ', ,, abc, xyz,eee,fff';

function GetFilteredArr(_str) {
  var arr = [];
  var temp = _str.split(',');
  temp.filter(function(v) {
    var _v = v.trim();
    if (_v == "")
      return false;
    arr.push(_v);
  });
  return arr;
}

var filterdArr = GetFilteredArr(str);

console.log(filterdArr);




答案 3 :(得分:0)

另一个:P

", ,, abc, xyz,eee,fff".replace(/[, ]+/g, " ").trim().split(" ")

答案 4 :(得分:0)

另一种方式可能是

var s = "abc, xyz, , ,,, eee",
    a = s.replace(/(\s*,\s*)+/g,",").split(",");
console.log(a);