2012-12-11 154 views
0

我可以給不止一個參數給JavaScript中的拆分函數來刪除多個東西,並將其放入數組?對於expamle:javascript拆分功能

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

var wordArray=str.split(" "); 

這會給我的每一個字分別

除了這個結果,我想刪除「是」「這個」從陣列,這樣我就可以把在分割功能很多參數,從一開始就「刪除」 & 「是」 & 「這個」?或者我應該使用另一個功能拆分()

回答

0

有很多方法可以實現你想要的。基本上你要刪除

所以要麼你可以這樣做:

一個。如果你想刪除的單詞總是第一個和第二個,那麼

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

b。如果要刪除的單詞可以在字符串中的任意位置

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(' '); 

根據您的需要,您可以選擇其中任何一個。

引用:thisthisthis

+0

這三個例子中唯一能夠工作的是第一個。 – David

+0

@大衛,我的道歉,最後一個,它被逗號分割,無論他們現在工作。 –

+0

@ManishMishra謝謝youuuuuuu !!! – elianore

0

我不會嘗試使用split從字符串中刪除東西。您應該使用「替換」來刪除它們,然後再拆分。

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

這應該刪除「is」和「this」,然後你可以從那裏拆分它。

更新

只是調整了正則表達式。我忘了添加一個g來讓它擺脫所有這些。

如果您希望它不區分大小寫(即匹配This,Is等),請在g之後添加i開關。

FIDDLE

+0

這是不是爲OP的例子正確的正則表達式,你最終會用'[ 「TH」, 「是」,...' – David

+0

@samanime謝謝!但它並沒有刪除**「is」**和**「this」**,它只刪除其中的一個 – elianore

+0

已更新,以添加g標籤,以免它們全部被刪除。我不知道爲什麼大衛認爲它會得到他所說的。它似乎在jsfiddle中工作得很好。 – samanime

0

String.split採用兩個參數,一個隔板和一個極限。所以基本上你可以從結果數組的末尾刪除條目(限制數組),但不能從頭開始。

在這裏閱讀更多:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/split

但是,您可以鏈所產生的與其它陣列原型陣列,這樣你就可以很容易地添加Array.splice做你想要什麼:

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

如果你想具體刪除某些字詞,請使用Array.filter

var wordArray = str.split(' ').filter(function(word) { 
    return !/(is|this)/i.test(word); 
}); 
+0

謝謝!但是如果**「是」**&**「這個**」不是一開始就是例如一個在開始,一個在中間我該怎麼辦? – elianore

+0

然後您可以使用'Array.filter'(請參閱編輯)。 – David