Website-Suche

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.

Verwandte Artikel