2017-10-29 4 views
0

Ich möchte "mich" in "Sie" umwandeln, ohne Worte zu berühren, die "mich" in ihnen haben, dh
"awesome Melone mich" -> "awesome melon you"Javascript Regex Zeichenfolge ohne Zeichen vor oder nach

Bisher habe ich die negativen Muster Vorgriffs:

str.replace(/me(?![a-zA-Z])/g, 'you')

so erhalte ich

"awesome Melone me" -> "awesoyou Sie Melone"

Versuchte some answers bereits, nicht jemanden finden könnte, der diese Anforderung übereinstimmt, Dank im Voraus für die Hilfe

Antwort

2

Sie können die Null-Breite \b Sonderzeichen verwenden, um sicherzustellen, anzupassen „me“ wenn es ein komplettes Wort:

"awesome melon me".replace(/\bme\b/g, "you") 
// returns "awesome melon you" 
0

können Sie Wortgrenze verwenden, wie in anderen Antworten vorgeschlagen, die auch me345 oder hello_me hält. Wenn Sie ein strengeres Übereinstimmungsmuster benötigen, können Sie den übereinstimmenden Buchstaben vor dem Muster erfassen und in das Ersatzmuster einfügen.

var s = "me awesome melon me" 
 
console.log(s.replace(/(^|[^a-zA-Z])(me)(?![a-zA-Z])/g, '$1you'));

0

Dies sollte es tun: str.replace(\bme\b/g, 'you')-\b für eine Wortgrenze sieht.

Verwandte Themen