按空格拆分字符串,没有空元素?

时间:2012-02-04 15:29:28

标签: javascript regex

我正在尝试使用javascript来爆炸字符串来选择搜索空格,空格分隔。但是,如果searchterm以空格结束,我会得到空数组元素,如下所示。

我应该怎么做才能避免后处理这个数组并删除空元素?

var str = "searchterm1 searchterm2";
console.log(str.split(" ")); // ["searchterm1", "searchterm2"]

var strb = "searchterm1 "; // Note the ending whitespace
console.log(strb.split(" ")); // ["searchterm1", ""]

5 个答案:

答案 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]]