无法在Javascript中删除带有正则表达式的占位符

时间:2016-11-10 16:56:03

标签: javascript jquery regex

我有一个动态创建的表,其中包含一些我想删除的冗余占位符,它们看起来像这样:

{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, "");

不太确定为什么它无法运作

2 个答案:

答案 0 :(得分:2)

如果你也试图匹配[],你需要逃避它们:

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

答案 1 :(得分: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 ....