我有一个字符串,其中包含一些日期和一些逗号分隔的值,如此
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)
----> 输出:'/(。)?01-02-2016(。)?|#| / igm'
预计最终输出将删除最高01-02-2016,1 |#|
答案 0 :(得分: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有两种方法可以制作正则表达式。 1.用斜杠写吧// 2.使用新的RexExp(字符串)生成字符串;
如果你从字符串中创建它,你可以给出约束(“global,incase,etc”)作为第二个参数,如上所述。 而且你必须双重转义(\)转义字符。