正则表达式变量(如在preg_replace中)

问题描述 投票:0回答:1

(请注意:我不是试图使用javascript中定义的变量来表示正则表达式,这是不同的,所以不要标记为重复) 您好,我正在尝试与NodeJS进行WebSocket聊天,此时我正在尝试创建一个基本的正则表达式替换功能。我正在尝试做以下事情:

1)用**randomTxt**替换<b>randomTxt\</b> 2)用https://link.com/替换<a href="https://link.com">https://link.com/</a> 在PHP中,我可以做到

$message = preg_replace('#\*{2}(.*?)\*{2}#', '<b>$1</b>', $message);
$message = preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '<a href="$1" target="_blank">$1</a>', $message);

但在NodeJS中,我似乎无法使用像“$ 1”这样的正则表达式变量。 (试过新的RegExp,只是替换(//),不起作用。这是我在下面尝试的。

var linkReg = new RegExp("#\\*{2}(.*?)\\*{2}#", 'g');
str = str.replace(linkReg, "<b>$1</b>");

return str;

有没有相当于preg_replace,还是有另一种方法可以使用正则表达式变量?提前致谢。

javascript node.js regex
1个回答
0
投票

var text = 'bla bla **randomTxt** bla bla **randomTxt** bla bla'
var patt = /\*\*([^*]+)\*\*/g;
var new_text = text.replace(patt, '<b>$1</b>')
console.log(new_text)

var text = 'bla bla https://link.com/ bla bla https://link.com/ bla bla'
var patt = /(https?:\/{2}[^/]+\/)/g;
var new_text = text.replace(patt, '<a href=$1>$1</a>')
console.log(new_text)
© www.soinside.com 2019 - 2024. All rights reserved.