2016-11-10 2 views
0

Ich habe eine dynamisch erstellte Tabelle enthält einige redundante Platzhalter entfernen, die ich entfernen möchte, sie sehen wie folgt aus:Kann nicht Platzhalter mit regulären Ausdrücken in Javascript

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

, in der ich versuche regulären Ausdruck JavaScript, aber es funktioniert nicht, hier ist mein regulärer Ausdruck, Tabelle unten ist eine Zeichenfolge, die in DOM eingefügt wird.

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>" 

regulärer Ausdruck:

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

Nicht ganz sicher, warum es nicht funktionieren könnte

+0

Was ist 'table'? Zeigen Sie den relevanten Code an. –

+0

Versuchen Sie, [] wörtlich zu finden? Wenn ja, musst du ihnen entkommen. – Matus

+0

Ich nehme an, dass sogar die geschweiften Klammern maskiert werden müssen: '/ \ {firm \ [\ d {1} \] \ [\ d {1} \] \}/g' – Blauelf

Antwort

2

Wenn Sie versuchen, [] zu entsprechen, müssen Sie sie entkommen:

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

Danke, es klappt jetzt :) – user1888955

0

ein weiterer direkter Ansatz besteht darin, aus den folgenden Erfassungsgruppen zurückzukehren:

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 .... 
Verwandte Themen