2015-06-28 2 views
5

ich t von g bin ersetzt, wenn t nicht durch den Buchstaben p mit dieser Codezeile folgt:ersetzen Verwendung() ersetzt zu viel Inhalt

"tpto".replace(/(t)[^p]/g, "g"); 

jedoch das Ergebnis ist tpg und ich erwartete tpgo. Da ich nicht weiß, welcher Buchstabe dem t folgen wird, brauche ich etwas Dynamisches, aber ich weiß nicht was ich machen soll, irgendwelche Ideen?

Antwort

10

Sie können negative lookahead assertion verwenden:

"tpto".replace(/t(?!p)/g, "g"); 
// => "tpgo" 
  • /t(?!p)/: t nur entsprechen, wenn es nicht (negativ) ist gefolgt (Look-Ahead) von p.