javascript regexp正向查找以动态替换/包装URL中的文本
使用jQuery/Javascript,我希望匹配多个容器中的文本,并在URL中使用匹配的文本时围绕文本包装一个链接 输入HTML:javascript regexp正向查找以动态替换/包装URL中的文本,javascript,jquery,Javascript,Jquery,使用jQuery/Javascript,我希望匹配多个容器中的文本,并在URL中使用匹配的文本时围绕文本包装一个链接 输入HTML: 这只狗跳过了标识号为12345-6789的栅栏,撞上了另一个标识号为98765-4321的栅栏。 狗继续跳过标识号为12345-6789的围栏,再次撞上另一个标识号为98765-4321的围栏。 输出HTML: 那条狗跳过了栅栏id,然后撞上了另一个栅栏id。 狗继续跳过栅栏id,又一次撞上了另一个栅栏id。 这是我到目前为止所做的(没有工作) $(“di
这只狗跳过了标识号为12345-6789的栅栏,撞上了另一个标识号为98765-4321的栅栏。
狗继续跳过标识号为12345-6789的围栏,再次撞上另一个标识号为98765-4321的围栏。
输出HTML:
那条狗跳过了栅栏id,然后撞上了另一个栅栏id。
狗继续跳过栅栏id,又一次撞上了另一个栅栏id。
这是我到目前为止所做的(没有工作)
$(“div:contains('fence id:'))”).html(函数(\ux,html){
var rx=new RegExp('fence id:[0-9A-Z-]+','gi');
返回html.replace(rx',);
});
你已经非常接近了
首先,您需要通过使用()
创建捕获组来确保您的正则表达式实际上正在捕获id文本:
var rx = new RegExp('fence id:([0-9A-Z-]+)','gi');
其次,当使用$1
引用捕获组时,您实际上只想将其包含在替换字符串中,而不是将其视为变量:
return html.replace(rx, '<a href="123.45678.com?id=$1">$1</a>');
返回html.replace(rx',);
$(“div:contains('fence id:'))”).html(函数(\ux,html){
var rx=new RegExp('fence id:([0-9A-Z-]+),'gi');
返回html.replace(rx',);
});代码>
这只狗跳过了标识号为12345-6789的栅栏,撞上了另一个标识号为98765-4321的栅栏。
狗继续跳过标识号为12345-6789的围栏,再次撞上另一个标识号为98765-4321的围栏。
是的,就是这样!这一次我的头撞在桌子上。谢谢
$("div:contains('fence id:')").html(function(_,html){
var rx = new RegExp('fence id:[0-9A-Z-]+','gi');
return html.replace(rx, '<a href="123.45678.com?id='+$1+'">'+$1+'</a>');
});
var rx = new RegExp('fence id:([0-9A-Z-]+)','gi');
return html.replace(rx, '<a href="123.45678.com?id=$1">$1</a>');