2011-05-20 133 views
5

我想要替換的[h2][/h2]所有出現在JavaScript字符串 例如,我有替換所有的字符串出現

var mystring = 'hii[h2][/h2]'; 

我想 - > HII

到目前爲止,我試過

mystring.replace(/[h2][\/h2]/g, ""); 
+5

'['是一個特殊字符,你需要逃脫它。 – pimvdb 2011-05-20 15:55:58

+0

[如何使用JavaScript替換字符串中的所有點](http://stackoverflow.com/q/2390789/1529630)可能存在重複,但此處使用括號而不是點。 – Oriol 2015-10-10 23:39:45

回答

7

你需要逃避方括號。

mystring.replace(/\[h2\]\[\/h2\]/g, ''); 
+0

錯誤:未終止的正則表達式文字 源代碼: 'str = str.replace(/ \ [i \] [\\ i \]/g,'');' – Sourav 2011-05-20 15:59:52

+1

@Sourav:你忘了逃脫第二次打開方括號。 – 2011-05-20 16:01:01

+0

@Sourav:你必須**逃避**,''和'['。 – pimvdb 2011-05-20 16:01:05

2

假設這些標籤之間沒有任何內容,您還需要轉義[]

mystring.replace(/\[h2]\[\/h2]/g, ""); 
+0

難道你不必逃避關閉方括號? – 2011-05-20 16:02:58

+1

不,只有[保留;如果它後來逃脫]只是一個普通字符 – 2011-05-20 16:05:51

+0

我沒有意識到這一點。 – 2011-05-20 16:07:42

2

試試這個:

str.replace(/\[h2\]\[\/h2\]/g,""); 

注意,您必須逃脫[和]如果它們形成要更換,否則它們將被解釋爲「字符類」標記文本的一部分。

如果[H2]和[/ H2]也可能出現獨立的,你可以用這一個:

str.replace(/\[\/?h2\]/g,""); 
相關問題