2017-02-09 48 views
1

之間的動態變量我有一個包含一些日期和這樣如何使用正則表達式

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" 

正則表達式一些逗號分隔值的字符串:/(.)*?01-02-2016(.)*?\|\#\|/igm 通過使用正則表達式,我可以能夠刪除不必要的部分在字符串中。

現在我想動態地更改03-08-3016(日期)。如果我使用 var date =「01-02-2016」 var reg = /(.)*?${date}(.)*?\|\#\|/igm;

如果您在CONSOLE.LOG你會得到這樣的下面 console.log(reg) ---->輸出普林REG:()?()?「/ 2016年1月2日 |#|/igm'

預計最終輸出將刪除至01-02-2016,1 |#|

+0

顯示替換/刪除後應如何查看最後一個字符串 – RomanPerekhrest

+0

已更新plz檢查它 –

+0

mmhh我在猜測,爲什麼不像這樣使用'/(。)*?+ $ {date} +(。)*?\ | \ \ \ |/igm'我正在談論字符串連接。 –

回答

1

使用此。

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的有2種方法,使正則表達式。 1.寫入斜槓// 2.使用新的RexExp(字符串)從字符串進行;

如果你是從字符串開始的,你可以像上面那樣給出約束(「global,incase等)」作爲第二個參數。 並且還必須將逃生字符加倍(\)。

+0

是的。我明白了,謝謝 –

+0

通過使用模板綁定的ES6語法,我們可以追加變量 我們也可以這樣做 var date =「01-02-2016」; //或動態日期從db var regex ='(。)*?$ {date}(。)*?\\ | \\#\\ |'; var rx = new RegExp(regex,「igm」) var output =「asdf 01-02-2016,1 |#| done」.replace(rx,''); console.log(輸出) –

+0

感謝info @Deepakrao並會自我更新。分享將有助於獲得更多的知識。 (y)的 –