我有一个类似于搜索字符串的搜索功能。我将此字符串转换为数组。该字符串用逗号分隔两个单词。
理想格式:
搜索字词输入 = xyz,abc,eee,fff
现在,如果用户遵循我的格式,我可以使用split并获取我的数组但是如果:
搜索字词输入 = abc,xyz ,,,, eee
或搜索词输入 = ,,, abc,xyz,eee,fff
或者沿着这些方向的东西
如果用户使用其他格式,我该如何摆脱额外的空格?唯一可以想到的是循环遍历数组并检查是否为空格并删除它。有更简单的方法或方法吗?
这就是我的 getArray 的样子
getArray = search-term-entered.split(", ");
答案 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);