1

我可以在 javascript 中为 split 函数提供多个参数以删除多个内容并将其放入数组中吗?例如:

 var str= "This is Javascript String Split Function example ";

 var wordArray=str.split(" ");

这将分别给我每个单词

除了这个结果,我想从数组中删除 “is”“this”,那么我可以在拆分函数中放入许多参数以从开头删除“”“is”“this”吗?还是我应该使用 split()以外的其他功能?

4

3 回答 3

1

有很多方法可以实现您想要的。基本上你要删除的是这个

所以你可以这样做:

一个。如果您要删除的单词始终是第一个和第二个,那么

 var filteredArray = str.split(" ").splice(2);

湾。如果要删除的单词可以在字符串中的任何位置

var  filteredArray = str.replace(/this|is/g, function(w){

        switch(w){
           case 'this':
                 return '' ;

              case 'is':
                   return '';
          }

    }).trim().split(' ');

C。还有另一种蹩脚的方法可以做到这一点。

var str= "This is Javascript String Split Function example ";
var parts = str.split(' ');
var clean = [];
for (var i = 0; i < parts.length; i++) {
   var part = parts[i];
   if (part !== "This" && part !=="is")
      clean.push(part);
}

d。使用简单的正则表达式替换多个单词

var str= "This is Javascript String Split Function example ";
   var words = ['This', 'is'];
   var text = str.replace(new RegExp('(' + words.join('|') + ')', 'g'), '').split(' '); 

根据您的需要,您可以选择其中任何一个。

参考:这个这个这个

于 2012-12-11T10:54:36.717 回答
0

我不会尝试使用 split 从字符串中删除内容。您应该使用“替换”来删除它们,然后再拆分。

var wordArray = str.replace(/is|this/g, '').split(" ");

那应该删除“is”和“this”,然后你可以从那里拆分它。

更新

稍微调整一下正则表达式。我忘了添加 ag 以使其摆脱所有这些。

如果您希望它不区分大小写(即匹配 This、Is 等),请在 g 之后添加 i 开关。

小提琴

于 2012-12-11T10:47:47.020 回答
0

String.split接受两个参数,一个分隔符和一个限制。所以基本上你可以从结果数组的末尾删除条目(限制数组),但不能从一开始。

在这里阅读更多:https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/split

但是,您可以将结果数组与其他数组原型链接,因此您可以轻松添加 aArray.splice来做您想做的事情:

var wordArray = str.split(" ").splice(2);

如果要专门删除某些单词,请使用Array.filter

var wordArray = str.split(' ').filter(function(word) {
    return !/(is|this)/i.test(word);
});
于 2012-12-11T10:50:38.047 回答