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

Javascript 从不同格式的字符串中删除空格并将其转换为数组的最佳方法,javascript,arrays,string,Javascript,Arrays,String,我有一个类似搜索的函数,它接受字符串。我将此字符串转换为数组。字符串在两个单词之间用逗号区分 理想格式: 输入的搜索词=xyz、abc、eee、fff 现在,如果用户遵循我的格式,我可以使用split并获取我的数组,但如果: 输入的搜索词=abc、xyz、、、eee 或输入的搜索词=、、、abc、xyz、eee、fff 或者类似的东西 如果用户使用其他格式,如何消除额外的空白?唯一能想到的是在数组中循环,检查是否有空格并将其删除。有没有更简单的方法 这就是我的getArray的外观 getArr

我有一个类似搜索的函数,它接受字符串。我将此字符串转换为数组。字符串在两个单词之间用逗号区分

理想格式:
输入的搜索词=xyz、abc、eee、fff

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

输入的搜索词=abc、xyz、、、eee
或输入的搜索词=、、、abc、xyz、eee、fff
或者类似的东西

如果用户使用其他格式,如何消除额外的空白?唯一能想到的是在数组中循环,检查是否有空格并将其删除。有没有更简单的方法

这就是我的getArray的外观

getArray=输入的搜索词。拆分(“,”)

正如@RC所指出的,您已经可以在此网站上找到如何过滤空字符串的示例。但是,要修剪空白区域,可以使用以下方法

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

正如@RC所指出的,您已经可以在此站点上找到如何过滤空字符串的示例。但是,要修剪空白区域,可以使用以下方法

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

var str='、abc、xyz、eee、fff';
函数getFilteredar(_str){
var-arr=[];
变量温度=_str.split(',');
温度过滤器(功能(v){
var_v=v.trim();
如果(_v==“”)
返回false;
arr.push(_-v);
});
返回arr;
}
var filterdar=getfilterdar(str);
控制台日志(filterdArr)类似这样的东西

var str='、abc、xyz、eee、fff';
函数getFilteredar(_str){
var-arr=[];
变量温度=_str.split(',');
温度过滤器(功能(v){
var_v=v.trim();
如果(_v==“”)
返回false;
arr.push(_-v);
});
返回arr;
}
var filterdar=getfilterdar(str);

控制台日志(filterdArr)使用
字符串的简单解决方案。匹配
函数:

var str = ', ,, abc, xyz,eee,fff',
    converted = str.match(/\b\w+?\b/g);

console.log(converted);  // ["abc", "xyz", "eee", "fff"]

使用
String.match
函数的简单解决方案:

var str = ', ,, abc, xyz,eee,fff',
    converted = str.match(/\b\w+?\b/g);

console.log(converted);  // ["abc", "xyz", "eee", "fff"]
另一个:p

", ,, abc, xyz,eee,fff".replace(/[, ]+/g, " ").trim().split(" ")
另一个:p

", ,, abc, xyz,eee,fff".replace(/[, ]+/g, " ").trim().split(" ")
另一种可能是

var s=“abc,xyz,,,,,eee”,
a=s.replace(/(\s*,\s*)+/g,“,”).split(“,”);
控制台日志(a)另一种方法可能是

var s=“abc,xyz,,,,,eee”,
a=s.replace(/(\s*,\s*)+/g,“,”).split(“,”);

控制台日志(a)可能的重复它几乎是重复的,但我认为额外的要求是修剪数组术语,这就需要一个新的问题:(
abc xyz,abc
)这样的术语之间的空格是否有效?@Pugazh是的,我想将它们视为一个单一的stringSidenote,不要在
,“
(包括空格)上拆分。仅在逗号上拆分。可能的重复项几乎是重复项,但我认为修剪数组项的额外要求保证了一个新问题:(
abc xyz,abc
)之类的术语之间的空格是否有效?@Pugazh是的,我想将它们视为一个单一的stringSidenote,不要在
,“
(包括空格)上拆分。仅在逗号上拆分。