2016-06-16 5 views
1

Ich habe ein bestimmtes Wort (zum Beispiel "in"), nach denen ich ein Leerzeichen mit einem Leerzeichen ersetzen möchte. Ich habe einfach ersetzt: von "in" bis "in" + String.fromCharCode (160).Javascript Zeichenfolge ersetzen Leerzeichen mit Leerzeichen nach einem bestimmten Wort

jedoch Worte werden nicht immer von Räumen umgeben - für eample in diesem Satz:

Dies ist ein Beispieltext (in die dort Klammern).

Also brauche ich eine Regex, um ein Leerzeichen nach "in" mit einem Leerplatz zu ersetzen. Wie kann ich das machen?

Antwort

3

Sie können eine Wortgrenze verwenden, bevor in

.replace(/\bin /g, "in" + String.fromCharCode(160)) 

Um es Groß- und Kleinschreibung zu machen:

.replace(/\b(in) /ig, "$1" + String.fromCharCode(160)) 

Hier ist the regex demo

Siehe Demo unter:

console.log(
 
    "In this is sample text (in which there are parentheses)." 
 
    .replace(/\b(in) /ig, "$1" + String.fromCharCode(160)) 
 
);

+0

Danke, funktioniert perfekt. Wie kann eine Variable anstelle von "in" verwendet werden? Ich habe versucht 'new RegExp (" \ b ("+ Präposition +") "," ig ");' aber es funktioniert nicht. – cuddlecheek

+1

Die Verwendung des Konstruktors ist der richtige Weg, nur der umgekehrte Schrägstrich muss verdoppelt werden: 'new RegExp (" \\ b ("+ Präposition +") "," ig ");' –

+0

Oh, ich sehe - ich muss entkommen Backslash, um das Zeichenfolgenliteral "\ b" auszudrücken, da andernfalls der erste umgekehrte Schrägstrich das "b" und nicht an den Konstruktor übergeben würde. ist es wahr? – cuddlecheek