2017-05-10 3 views
1

Spiel ersetzen i alles ersetzt werden soll, nachdem das erste Spiel von Stk. verwendet, um dies aber seine nicht funktioniert: text.replace('/(Stk\.).*/','')jquery REGEX alles nach dem ersten Auftreten von

Beispiel String (die Zeichenfolge zwei Linien):

123456 50 Stk. 
test Stk. 

ich möchte test Stk. löschen, so dass alles nach the first Stk.

+1

verwenden vielleicht 'split'. var new_text = text.split ('Stk') [0]; – Luke

Antwort

1

Sie müssen s entfernen ingle zitiert aus der ganzen Regex wörtlichen, verwenden [\s\S] jede char und ein Rückreferenzierung im Ersetzungsmuster entsprechen:

var text = "123456 50 Stk.\ntest Stk."; 
 
console.log(text.replace(/(Stk\.)[\s\S]*/,'$1'));

Einzelheiten:

  • (Stk\.) - Erfassung Gruppe 1 übereinstimmenden Stk. Teilstring und Speichern in einem Speicherpuffer, deren Inhalt mitzugegriffen werden kannRückverweis aus dem String-Ersetzungsmuster
  • [\s\S]* - passt zu mindestens 0 Zeichen (so, bis zum Ende der gesamten Zeichenfolge, mehrzeilig oder nicht).
+0

Perfekt! Vielen Dank! –

+0

@ azmd108: Beachten Sie, dass die 'Splitting'-Lösung eine natürlichere und lesbarere Lösung sein kann. Oder eine Lösung basierend auf 'substr()'/'substring()' als Ihr 'Stk.'-Trennzeichen ist eine literale Zeichenfolge. Ich konzentrierte mich nur darauf, deinen Ansatz zu korrigieren. –

0

Sie können split Funktion verwenden.

var string = "123456 50 Stk.\n test Stk." 
 
var result = string.split('Stk'); 
 
console.log(result[0]);

Verwandte Themen