我试图用标签围绕middleRsults中的日期:
var middleRsults = "95.00 04/07/15 aaaa 10/02/15 ";
var regex =/\d{2}\/\d{2}\/\d{2}/g;
var x= middleRsults.replace(regex,"<b>$1</b>")
我想得到什么:
95.00 <b>04/07/15</b> aaaa <b>10/02/15</b>
相反,我实际得到的是:
95.00 <b>$1</b> aaaa <b>$1</b>
我经常搜索,但无法弄清楚为什么我正在使用这个特定的正则表达式。
答案 0 :(得分:3)
使用当前的正则表达式,您只需使用匹配的子字符串$&
:
var middleRsults = '95.00 04/07/15 aaaa 10/02/15 ',
regex = /\d{2}\/\d{2}\/\d{2}/g,
x = middleRsults.replace(regex, '<b>$&</b>');
console.log(x);
或者,对于更复杂的情况,您可以将函数指定为参数,其中match
是匹配的子字符串(对应于$&amp; above。):
var middleRsults = '95.00 04/07/15 aaaa 10/02/15 ',
regex = /\d{2}\/\d{2}\/\d{2}/g,
x = middleRsults.replace(regex, match => `<b>${match}</b>`);
console.log(x);
答案 1 :(得分:1)
您需要捕获组才能使用$n
替换:
var regex =/(\d{2}\/\d{2}\/\d{2})/g;
括号形成这样一个群体。这些组在模式中从左到右编号。
答案 2 :(得分:1)
当你意识到这一点时,你可能会面对手掌,但你的正则表达式并不包含1美元的捕获组。
这应该有希望解决它:
var regex = /(\d{2}\/\d{2}\/\d{2})/g;