Regex - Javascript ersetzen mit Bezug auf die gefundene Gruppe?
Ich habe einen String, wie zum Beispiel hello _there_. Ich möchte die beiden Unterstriche jeweils durch <div> und </div> ersetzen, unter Verwendung von JavaScript. Das Ergebnis würde (daher) wie hello <div>there</div> aussehen. Der String könnte mehrere Paare von Unterstrichen enthalten.
Was ich suche, ist eine Möglichkeit, eine Funktion bei jedem Treffer auszuführen, entweder auf die Weise, wie Ruby es macht:
"hello _there_".gsub(/_.*?_/) { |m| "<div>" + m[1..-2] + "</div>" }
Oder in der Lage sein, auf eine übereinstimmende Gruppe zu verweisen, wiederum auf die Weise, wie es in Ruby gemacht werden kann:
"hello _there_".gsub(/_(.*?)_/, "<div>\\1</div>")
Irgendwelche Ideen oder Vorschläge?
Antwort #1
"hello _there_".replace(/_(.*?)_/, function(a, b){
return '<div>' + b + '</div>';
})
Oh, oder du könntest auch:
"hello _there_".replace(/_(.*?)_/, "<div>$1</div>")
Antwort #2
Du kannst replace anstelle von gsub verwenden.
"hello _there_".replace(/_(.*?)_/g, "<div>\$1</div>")
Antwort #3
Für die Ersetzungszeichenfolge und das Ersetzungsmuster, wie durch $ angegeben. Hier eine Zusammenfassung:
Link zum Dokument: hier
"hello _there_".replace(/_(.*?)_/g, "<div>$1</div>")
Hinweis:
Wenn Sie ein $ in der Ersetzungszeichenfolge haben möchten, verwenden Sie $$. Gleich wie beim Snippet-System von vscode.
