2013-03-24 82 views
1

我有很多不同的括號/括號/括號({{...}},{...},[...] [[...] ],< ...>)與其他人在一起。刪除使用JavaScript之間的括號和文本

我想使用JS來刪除這些括號和任何文本/ etc在裏面(除[[...]]不在其他括號內,在這種情況下,我只想刪除括號) 。

這是我的工作字符串類型的例子:

{{PP-布展INDEF}} {{Taxobox |名字=紅熊貓|狀態= VU | status_system = iucn3.1 | status_ref = | image = RedPandaFullBody.JPG | regnum = [[Animal]] ia | phylum = [[Chordate | Chordata]] | classis = [[Mammal]] ia | ordo = [[Carnivora]] | subordo = [[Caniformia]] | infraordo = [[Arctoidea]] | superfamilia = [[Musteloidea]] | familia = [[Ailuridae]] | genus = Ailurus | genus_authority = [[Frederic Cuvier | F。庫維爾]],1825 |物種= A. fulgens |二項式= Ailurus fulgens | binomial_authority = [[Frederic Cuvier | F。庫維爾]],1825 | range_map = Cypron-Range Ailurus fulgens.svg | range_map_caption =紅熊貓範圍| subdivision_ranks =亞種|細分= A。 fulgens
A. f。 (東北虎)和西南部[中國]原產的小型[[樹棲]] [[哺乳動物]],這些小熊貓是一種小型[[樹棲]] [哺乳動物]評估者= Wang,X.,Choudhry,A.,Yonzon,P.,Wozencraft,C.,Than Z. | year = 2008 | id = 714 | taxon = Ailurus fulgens | version = 2010.4 | downloaded = 2010年6月26日}}並與[[浣熊]],[[臭鼬]]和[[鼬鼠]]有關。它是Ailurus屬唯一現存的物種和家庭[[Ailuridae]]。稍大於[[家貓]],它有紅褐色的皮毛,長而粗糙的尾巴,以及由於其較短的前腿而導致的蹣跚步態。它主要以[竹筍]爲食,但也可以[[omnivorous]],也可以吃雞蛋,[鳥]],[[昆蟲]]和小[[哺乳動物]]。它是一種[[孤獨的動物]],主要是[[從黃昏到黎明的夜間活動]],白天很大程度上是[[久坐不動的生活方式]]。

所需的結果

小熊貓(小熊貓fulgens,點亮「閃亮貓」),是一種小型樹棲哺乳動物,原產於喜馬拉雅山東部和中國西南部及相關浣熊,臭鼬和黃鼠狼。它是Ailurus屬和Ailuridae科的唯一現存種。它比家貓稍大一點,它有紅褐色的皮毛,一條長長的毛茸茸的尾巴,以及由於它較短的前腿而產生的蹣跚步態。主要以竹筍爲食,但是雜食性較強,也可以吃雞蛋,鳥類,昆蟲和小型哺乳動物。它是一種孤獨的動物,主要是從黃昏到黎明的活動,在很大程度上是久坐久坐的生活方式。

+0

請張貼到目前爲止,你已經嘗試的途徑。什麼都不行,你究竟在哪裏卡住? – 2013-03-24 02:27:28

+0

嘗試過'string.replace(一些正則表達式,'')',但不知道足以得到期望的結果。 這可以用'.replace()'完成嗎? – user989990 2013-03-24 02:32:52

+0

啊,所以「嵌套括號」將始終是連續的?即它始終是'{{...}}'但從來沒有'{... {...} ...}'? – 2013-03-24 02:43:28

回答

3
function removeBrackets(input) { 
    return input 
     .replace(/{.*?}/g, "") 
     .replace(/\[.*?\]/g, "") 
     .replace(/<.*?>/g, "") 
     .replace(/\(.*?\)/g, ""); 
} 
+2

這將產生{{...}}或任何其他嵌套括號集的破碎結果。 – 2013-03-24 02:34:12

1

注:這建立在上述@Joseph倫諾克斯的建議。

function removeBrackets(input) { 
    return input 
     .replace(/{+.*?}+/g, "") 
     .replace(/\[\[|\]\]/g, "") 
     .replace(/<.*?>/g, ""); 
} 

...的+讓我們吸收{{和}}等

+1

*「有些在別人內部」*也可能意味着輸入可以是「{... {...} ...}」。但是OP必須澄清這一點。 – 2013-03-24 02:38:58

+0

@FelixKling:好的,這不會解決這種情況。 – 2013-03-24 02:39:55

+0

不幸的是,JS的正則表達式缺乏遞歸支持,通過正則表達式使得這是不可能的。提問者不是很清楚/仍然不是,所以我懷疑有人在這艘船上跳。 – 2013-03-24 02:42:05