我正在尝试使用javascript来爆炸字符串来选择搜索空格,空格分隔。但是,如果searchterm以空格结束,我会得到空数组元素,如下所示。
我应该怎么做才能避免后处理这个数组并删除空元素?
var str = "searchterm1 searchterm2";
console.log(str.split(" ")); // ["searchterm1", "searchterm2"]
var strb = "searchterm1 "; // Note the ending whitespace
console.log(strb.split(" ")); // ["searchterm1", ""]
答案 0 :(得分:47)
您可以简单地匹配所有非空格字符序列:
str.match(/[^ ]+/g)
答案 1 :(得分:11)
无论什么分离器,它始终有效:
str.split(' ').filter(function(i){return i})
// With ES6
str.split(' ').filter(i => i)
过滤逻辑在其他一些情况下也会发生变化。
答案 2 :(得分:1)
添加功能:
//Some browsers support trim so we check for that first
if(!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^\s+|\s+$/g,'');
};
}
然后在字符串上调用trim:
var strb = "searchterm1 "; // Note the ending whitespace
console.log(strb.trim().split(" ")); // ["searchterm1"]
答案 3 :(得分:0)
如果您想要可以使用的功能,只需扩展String:
String.prototype.splitNoSpaces = function(){
return this.split(' ').filter(function(i){return i});
};
//Now use it!
var classString = "class1 class2 class3 class4";
var classArray = classString.splitNoSpaces();
//classArray[0] is class1
//classArray[1] is class2
//classArray[2] is class3
//classArray[3] is class4
感谢@ user1079877的提示
答案 4 :(得分:0)
这有点旧,但是出于文档目的,还有另一种整洁的方式。
scan3 = df[ df['ADMIN'].isin(['Norway','Sweden', 'Finland']) ]
scan3_dissolved = scan3.dissolve(by='LEVEL')
poly = [scan3_dissolved['geometry'].values[0]]