在PHP我有这个(从以前的问题在我的帐户):
$message = 'Testing this **quote**';
$search = '/'*'*(.*?)''*'*/';
$replace = '<span style="font-weight: bold;">''1</span>';
在JavaScript中,我有这个:
var regexFind = document.getElementById("regexFind").innerHTML;
var pattern = /'*'*(.*?)'*'*/gi;
var match = regexFind.match(pattern);
var result = regexFind.split(pattern).join("<span style='font-weight: bold;'>**''1**</span>");
document.getElementById("regexOutput").innerHTML=result;
但是正如你在var result
中看到的,我使用''1
,但输出是:**'1**test**'1***
而不是一个粗体的测试,是否有一个JavaScript等效的PHP的''1
是我的方法方式吗?用一个更好的(有效的)方法来回答。如果可能的话。
EDITS / RESPONSES
当尝试$1
方法时,@nnnnnn建议:
var result = regexFind.split(pattern).join("<span style='color: red;'>**$1**</span>");
输出:**$1**test**$1**
使用.replace()
代替.match()
和.join()
,然后您可以将第一个子匹配引用为$1
:
var result = regexFind.replace(/'*'*(.*?)'*'*/gi,
'<span style="font-weight: bold;">$1</span>');
(如果有第二个子匹配,它将是$2
,以此类推)