2015-06-28 14 views
5

sto sostituendo t da g quando t non è seguita dalla lettera p utilizzando questa riga di codice:Utilizzando replace() sostituisce troppo contenuto

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

Tuttavia, il risultato è tpg e mi aspettavo tpgo. Siccome non so quale lettera seguirà lo t ho bisogno di qualcosa di dinamico ma non so cosa fare, qualche idea?

risposta

10

È possibile utilizzare negative lookahead assertion:

"tpto".replace(/t(?!p)/g, "g"); 
// => "tpgo" 
  • /t(?!p)/: t corrisponderà solo se non è (negativo) seguita (lookahead) di p.