2016-11-10 40 views
0

我已經包含了一些多餘的地方持有者,我想刪除動態創建的表,他們是這樣的:不能與正則表達式刪除佔位在Javascript

{firm[i][j]} //i,j are numbers 

我想在正則表達式JavaScript但它不起作用,這裏是我的正則表達式,下面的表格是一個將被插入DOM的字符串。

var table = " 

<table class='table table-sm' style='margin:auto;'> 
<thead> 
    <tr> 
     <th colspan='5'>QARELEASE</th> 
    </tr> 
</thead> 
<tbody> 
    <tr style='text-align:left;'> 
     <td width='25%;'>{firm[i][j]}</td> 
     <td width='25%;'>{firm[i][j]}</td> 
     <td width='25%;'>{firm[i][j]}</td> 
     <td width='25%;'>{firm[i][j]}</td> 
    </tr> 
</tbody> 

</table>" 

正則表達式:

table = table.replace(/{firm[\d{1}][\d{1}]}/g, ""); 

不明白爲什麼它不能正常工作

+0

什麼是「表」?顯示所有相關的代碼。 –

+0

你是想從字面上匹配[]嗎?如果是的話,你需要逃避它們。 – Matus

+0

我假設即使大括號也可能需要轉義:'/ \ {firm \ [\ d {1} \] \ [\ d {1} \] \}/g' – Blauelf

回答

2

如果你試圖匹配[]過,你將需要轉義:

table = table.replace(/{firm\[\d{1}\]\[\d{1}\]}/g, ""); 
+0

謝謝,它現在的作品:) – user1888955

0

另一種直接的方法是從捕獲組返回如下:

var str = '{firm[123][12]}'; 
str.replace(/\{firm\[(\d+)\]\[(\d+)\]\}/g,"$1,$2") //will return 123,12 
str.replace(/\{firm\[(\d+)\]\[(\d+)\]\}/g,"{foo $1-$2}") // will return {foo 123,12} 
//and so on ....