操纵javascript正则表达式匹配,例如更换前1美元

时间:2016-04-11 17:07:07

标签: javascript

我有一行javascript替换匹配,如下所示:

var str = "some string"
str.replace(/\[b\]((?:.|\n)+?)\[\/b\]/gmi, '**$1**')

是否可以在处理之前操纵$1中的值?

例如,我想对.replace()中的值运行标准$1,就像这样(显然不起作用):

str.replace(/\[b\]((?:.|\n)+?)\[\/b\]/gmi, '**$1.replace('x', 'y')**')

这可能吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:1)

感谢elclanrs,我得到了它的工作。例如:

str.replace(
 /\[b\]((?:.|\n)+?)\[\/b\]/gmi, 
 function(match, m1, m2){return '[' + m2 + '](' + m1.replace(/ /gmi, '%20') + ')';}
)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_function_as_a_parameter