2017-01-13 7 views
0

Ich versuche heelo|paul im folgenden HTML zu ersetzen, und ersetzen Sie es durch /heelo to paul/regex verwendet, um Text zu ersetzen, andernfalls

<p>Dear sir&nbsp;&nbsp; {{heelo|Paul}}&nbsp; ,</p>\n<p>I'm just testing please wait</p>\n<p>yours faithfully,</p>\n<p>&nbsp; 

Dies ist die regex ich verwendet:

str.replace(/.*?{{|}}/g, "/$1 to $2/") 

Aber es erzeugt das falsche ergebnis:

<p>Dear sir&nbsp;&nbsp; /$1 to $2/heelo|Paul/$1 to $2/&nbsp; ,</p>\n<p>I'm just testing please wait</p>\n<p>yours faithfully,</p>\n<p>&nbsp 

Irgendwelche Ideen?

+0

Welche Programmiersprache ist das? – melpomene

+0

Es ist Javascript – kohli

+0

Nein, ich habe versucht, JavaScript und es gibt nicht diese Ausgabe. – melpomene

Antwort

2

Sie haben vergessen | mit \, und auch Hinzufügen von Gruppen zu Ihrem gewünschten Spiele zu entkommen. Versuchen Sie, diese Regex:

(.*?{{)(.*?)\|(.*?)(?=}}) 

Dies ist ein Arbeits Javascript:

var myString = "<p>Dear sir&nbsp;&nbsp; {{heelo|Paul}}&nbsp; ,</p>\n<p>I'm just testing please wait</p>\n<p>yours faithfully,</p>\n<p>&nbsp;"; 
 
document.write(myString.replace(/(.*?{{)(.*?)\|(.*?)(?=}})/g, "$1/$2 to $3/"));

+0

Ich habe das versucht, aber es ist Entfernen "Sehr geehrter Herr" Teil auch – kohli

+0

@kohli Nein, es entfernt es nicht. Überprüfen Sie das Code-Snippet. – Ibrahim

+0

Tut mir leid, es funktioniert gut – kohli

2

Ich denke, das ist das, was Sie suchen ...

var p = document.getElementById('greetings'); 
 
p.innerText = p.innerText.replace(/.*?\{\{([\w\s]+)\|([\w\s]+)\}\}/, "/$1 to $2/");
<p id="greetings">Dear sir&nbsp;&nbsp; {{heelo|Paul}}&nbsp; ,</p>\n<p>I'm just testing please wait</p>\n<p>yours faithfully,</p>\n<p>&nbsp;

Verwandte Themen