Javascript replace() 和 $1 问题

标签 javascript regex

我正在尝试创建一个脚本来搜索文本中的模式,并在它找到的字符串周围加上一个标签。

$(".shop_attributes td").each(function () {
    $(this).html(function(i, html) {
        return html.replace(/E[0-9]{3,4}/g, "<strong>$1</strong>");
    });
});

这是我使用的代码,它确实找到了我正在查找的内容,但它实际上所做的是生成一个包含 $1 的标签。我期望它做的是将它找到的字符串放入强标签中。我在这里做错了什么?

最佳答案

您需要捕获匹配项,然后才能使用它。使用括号:

$(".shop_attributes td").each(function () {
    $(this).html(function(i, html) {
        return html.replace(/(E[0-9]{3,4})/g, "<strong>$1</strong>");
    });
});

Ridiculously over-simplified JS Fiddle demo .

关于Javascript replace() 和 $1 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13368906/

相关文章:

javascript - MQTT 主题和唯一性问题

javascript - 如何从带有 MongoDB 的游标中查找下一个 N 元素,没有 _id 并且在排序游标上

java - 为什么这个正则表达式不匹配任何东西?

java - 正则表达式用于分割每个字符,但将数字和小数保留在一起

c++ - regex_match 未按预期工作

javascript - Chrome 中的数据传输

javascript - Chrome 中的 onScroll 滚动To 行为平滑

javascript - 当我单击下一个或上一个按钮时,数据表显示旧值。

regex - Perl 正则表达式将每个字符捕获为一组

php - 正则表达式/通配符替换字符串 PHP