2017-01-24 4 views
0

Ich versuche, so etwas wie ‚bestellen = Höhe?‘ Zu ersetzen und ich weiß, es kann leicht wie folgt geschehen:Javascript replace regex jedes Zeichen

data = 'height' 

x = '?order=' + data 

x.replace('?order=' + data, '') 

Aber das Problem ist, dass Fragezeichen kann manchmal Ampersand werden .. Was wollen I machen wirklich tun leer, ob das erste Zeichen Et-Zeichen oder Fragezeichen ist so grundsätzlich, ob

?order=height 
&order=height 

kann eine leere Zeichenfolge

+0

@ GOTO0 mit, ich meine Frage aktualisiert und vergaß zu erwähnen, dass die Höhe a sein soll Variable, die verkettet wird –

+0

Wenn Ihre Zeichenfolge wie folgt aussieht: http: //example.com? order = 1 & foo = 2: Wenn Sie "? order = 1" entfernen, bleibt "http: //example.com & foo=2" übrig ', das ist nicht gültig URL (nach "com" sollte ein "?" Stehen, kein "&"). Bist du sicher, dass du das brauchst? –

+0

Ja, ich bin sicher .... –

Antwort

1

So können Sie es tun. Erstellen Sie ein RegExp Objekt mit

"[&?]order=" + match 

und ersetzen "mit" String.prototype.replace

function replace(match, str) { 
 
    regex = new RegExp("[&?]order=" + match,"g") 
 
    return str.replace(regex, "") 
 
} 
 

 
console.log(replace("height", "Yo &order=height Yo")) 
 
console.log(replace("weight", "Yo ?order=weight Yo")) 
 
console.log(replace("age", "Yo ?order=age Yo"))

+0

was ist, wenn der Wert 'height' eine Variable sein soll? –

+0

dann können Sie es ändern als 'regex =/[&?] Order = [^ \ t] +/g' –

+0

Aktualisieren Sie meine Frage, ich meinte etwas anderes –

3
x.replace(/[&?]order=height/, '') 
gemacht werden

Wenn Daten Stringvariable

x.replace(/[&?]order=([^&=]+)/, '') 
+0

@RoryMcCrossan Müssen Sie noch innerhalb der Zeichengruppe entkommen? I neuere escape '[.]' Und es passt '.' und nicht irgendein Zeichen – Justinas

+0

was ist, wenn der Wert 'Höhe' eine Variable sein soll? –

+0

@DeanChristianArmada Bitte geben Sie ein Beispiel –

2

Verwenden regulären Ausdruck für die .replace(/[?&]order=height/, '')

[?&] bedeutet jedes Zeichen aus dieser Liste.

/ ist Start und Ende Trennzeichen.

Bitte beachten Sie, dass das Muster nicht als String mit ' oder " eingeschlossen ist.

+0

Was ist, wenn der Wert 'Höhe' eine Variable sein soll? –

+0

Meine Frage aktualisieren –

Verwandte Themen