2017-05-12 1 views
-1

Ich versuche, die Zeichenfolge {NUM} in den folgenden Variablen zu ersetzen:Ersetzen String in mehrzeilige Variable nicht funktioniert

var table = '  <table class="full-width">\r\n' + 
      '   <tbody>\r\n' + 
      '   <tr>\r\n' + 
      '    <td width="75%" class="border-right-dotted left-line-tab">\r\n' + 
      '     <span id="47_TOTAL-CHARGES_D_{NUM}" class="input-text"></span>\r\n' + 
      '    </td>\r\n' + 
      '    <td width="25%" class="center-text">\r\n' + 
      '     <span id="47_TOTAL-CHARGES_C_{NUM}" class="input-text"></span>\r\n' + 
      '    </td>\r\n' + 
      '   </tr>\r\n' + 
      '   </tbody>\r\n' + 
      '  </table>\r\n'; 

mit dem folgende jquery ersetzen: table = table.replace("/{NUM}/gm", num);

, aber es scheint nicht zu funktionieren . Das Testen der Regex in https://regex101.com/ scheint zu zeigen, dass die Regex in Ordnung ist, aber es ersetzt den Text immer noch nicht wie erwartet.

enter image description here

+0

Sie suchen nach einem String-Literal; Sie verwenden keine Regex. Entfernen Sie die Anführungszeichen: 'table.replace (/ {NUM}/gm, num);' –

Antwort

4

einfach die doppelte Anführungszeichen entfernen:

table = table.replace(/{NUM}/gm, num); 

Ein Text in Anführungszeichen definiert einen Stringliteral während Sie einen regulären Ausdruck wörtlichen, müssen die durch Schrägstriche umgeben werden soll.

+0

Ich fühle mich so dumm! Vielen Dank. – Bitz