wake-up-neo.net

So ersetzen Sie das letzte Vorkommen von Zeichen in einer Zeichenfolge mithilfe von Javascript

Ich habe ein Problem damit, das letzte ',' in einer Zeichenfolge durch 'und' zu ersetzen:

Mit dieser Zeichenfolge: Test1, test2, test3

und ich möchte mit: __ test1, test2 und test3 enden

Ich versuche so etwas:

var dialog = 'test1, test2, test3';    
dialog = dialog.replace(new RegExp(', /g').lastIndex, ' and ');

aber es funktioniert nicht

28
Henrik Stenbæk
foo.replace(/,([^,]*)$/, ' and $1')

verwenden Sie den Anker $ ( end of line ), um Ihre Position anzugeben, und suchen Sie nach einem Muster rechts vom Kommaindex, das keine weiteren Kommas enthält.

Bearbeiten:

Obiges funktioniert genau für die definierten Anforderungen (obwohl der Ersatzstring willkürlich locker ist), aber aufgrund der Kritik von Kommentaren spiegelt der untenstehende Text den Geist der ursprünglichen Anforderung besser wider.

console.log( 
   'test1, test2, test3'.replace(/,\s([^,]+)$/, ' and $1') 
)

45
annakata
result = dialog.replace(/,\s(\w+)$/, " and $1");

$1 bezieht sich auf die erste Erfassungsgruppe (\w+) der Übereinstimmung.

4
splash

regex-Suchmuster\s ([^,] +) $

Line1: If not, sdsdsdsdsa sas ., sad, whaterver4
Line2: If not, fs  sadXD sad ,  ,sadXYZ!X
Line3: If not d,,sds,, sasa sd a, sds, 23233

Suche mit Mustern findet Zeile1: Whaterver4 Line3: 23233

Noch nicht gefunden Line2: sadXYZ! X
Dem fehlt nur ein Leerzeichen

0
ricksalmon