2016-11-23 215 views
-1

我有一個自動生成的字符串,如下所示:從字符串正則表達式刪除字符串

["January","February",null,"April"] 

我需要從字符串中刪除的「空」任何比賽,即:

["January","February",null,"April"] --> ["January","February","April"] 

我怎樣才能找到除",null"之外的所有東西?

我試過"^(?!,null).*"的變體沒有成功。

回答

1

要回答你的問題是說,你不需要正則表達式:

str = str.replace(",null", ""); 

然而,處理邊界情況太:

["January","February",null,"April"] --> ["January","February","April"] 
["January",null,null,"April"] --> ["January","April"] 
[null,"January","February","April"] --> ["January","February","April"] 
["January","February","April",null] --> ["January","February","April"] 
[null] --> [] 

可以更好地與正則表達式服務:

str = str.replaceAll("(?<=\\[)null,?|,null", ""); 

更換正則表達式迎合f或第一個(也可能是唯一的)職位,以及任何其他情況。

+0

會不說,還剃掉了項目的尾隨報價之前,或該項目的後領先報價它? –

+0

@Joe使用經過測試的解決方案進行編輯。有趣的是,第一位的空值是唯一「有趣」的情況。在其他任何位置,只需刪除',null'即可。 – Bohemian

0

請仔細閱讀這一塊,我們可以使用過濾功能

var arr = [null, "January","February",null,"April", null]; 
 

 
var arr2 = arr.filter(function(x){return x !== null}) 
 

 
console.log(arr,arr2);