2017-02-09 3 views
1

I Zeichenfolge habe, die wie dieserWie dynamischen Variable zwischen regulärem Ausdruck verwenden

var a = "1,13,20160308,200500000012016,10,Pending,01-02-2016,1|#|1,13,20160418,200500000012016,10,Pending,08-03-2016,1|#|1,13,20160623,200500000012016,10,Pending,18-04-2016,1|#|1,13,20160803,200500000012016,10,Pending,23-06-2016,1|#|1,13,20160912,200500000012016,10,Pending,03-08-2016,1|#|1,13,20161022,200500000012016,10,Pending,12-09-2016,1|#|1,13,20161129,200500000012016,10,Pending,22-10-2016,1|#|1,13,20170110,200500000012016,10,Pending,29-11-2016,1|#|1,13,20170215,200500000012016,10,Pending,10-01-2017,1|#|15-02-2017 APPEARANCE" 

regulären Ausdruck einige Daten und einige durch Komma getrennte Werte enthalten:/(.)*?01-02-2016(.)*?\|\#\|/igm Durch diesen regulären Ausdruck unnötig i kann in der Lage zu löschen Teil in Zeichenfolge.

Jetzt möchte ich 03-08-3016 (Datum) dynamisch ändern. Wenn ich verwenden var date = "01-02-2016" var reg = /(.)*?${date}(.)*?\|\#\|/igm;

Wenn Sie pring reg in console.log Sie so unter console.log(reg) ---->Ausgang erhalten wird: (.)? (.)? ‚/ 2016.01.02 | # |/igm '

Erwartete endgültige Ausgabe wird bis 01-02-2016,1 | # | gelöscht

+0

zeigen, wie die endgültige Zeichenfolge nach dem Ersetzen/Löschen aussehen sollte – RomanPerekhrest

+0

aktualisiert PLZ überprüfen Sie es –

+0

mmhh ich rate, warum nicht verwenden Sie es so/(.) *? + $ {Date} + (.) *? \ | \ # \ |/igm' Ich spreche von String-Verkettung. –

Antwort

1

Verwenden Sie dies.

var regex="(.)*?01-02-2016(.)*?\\|\\#\\|"; 
 
var rx=new RegExp(regex,"igm"); 
 
console.log(rx); 
 
//Then when do you want to change, 
 
regex=regex.replace("01-02-2016","03-02-2016"); 
 
rx=new RegExp(regex,"igm"); 
 
console.log(rx);

JavaScript haben 2 Methoden einen regulären Ausdruck zu machen. 1. schreibe es in Schrägstriche // 2. Make von string mit neuen RexExp (string);

Wenn Sie es aus einer Zeichenfolge erstellen, können Sie die Einschränkung ("global, incase, usw.") als zweiten Parameter angeben, wie oben beschrieben. und du musst auch doppelt entkommen (\) die Escape-Zeichen.

+0

Ja. Ich habe es Mann Danke –

+0

Mit ES6-Syntax der Vorlage Bindung können wir Variable anhängen Wir können dies auch tun var date = "01-02-2016"; // oder dynamisches Datum von db var regex = '(.) *? $ {date} (.) *? \\ | \\ # \\ |'; var rx = neue RegExp (regex, "igm") var output = "asdf 01-02-2016,1 | # | erledigt" .replace (rx, ''); console.log (Ausgabe) –

+0

Danke für die Info @Deepakrao und werde mich selbst aktualisieren. Teilen wird helfen, mehr Wissen zu erlangen. (y) –

Verwandte Themen