You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Regex与jQuery替换<b>标签中的文本?

用jQuery和正则表达式替换标签中的文本

嘿,我来帮你搞定这个问题!处理标签里的文本替换,其实有两种常见方式——优先推荐用jQuery直接操作DOM,因为正则处理HTML很容易踩坑(比如嵌套标签、带属性的标签都会让正则失效),不过两种方法我都给你详细说明:

方法一:jQuery DOM操作(最安全可靠)

jQuery专门提供了操作元素文本的方法,完全不用操心HTML结构的问题,非常灵活:

1. 直接替换所有标签的文本

如果你想把所有标签里的内容统一换成新文本,用text()方法就行:

// 把所有<b>标签的文本替换成"新的加粗内容"
$('b').text('新的加粗内容');

2. 基于原有文本修改

如果需要保留原有文本并做调整(比如加前缀、转大写),可以给text()传一个回调函数,它会返回每个标签的旧文本,你处理后返回新文本即可:

// 给每个<b>标签的文本加上"【重点】"前缀
$('b').text(function(index, oldText) {
  return '【重点】' + oldText;
});

方法二:正则表达式(仅适用于简单场景)

只有当你确定HTML结构非常简单(比如没有嵌套标签、标签没有额外属性)时,才适合用正则。因为HTML是结构化语言,正则很难覆盖所有复杂情况(比如<b class="highlight">文本</b>这种带属性的标签,正则就会匹配失败)。

1. 替换固定文本

假设你有一段HTML字符串,要替换所有里的内容:

let htmlContent = '<div>这是<b>旧文本1</b>,还有<b>旧文本2</b></div>';
// 非贪婪匹配<b>和</b>之间的内容,替换成新文本
let newHtml = htmlContent.replace(/<b>(.*?)<\/b>/g, '<b>替换后的新内容</b>');

2. 基于原有文本修改

同样可以用回调函数处理原有文本,比如把旧文本转成大写:

let htmlContent = '<div>这是<b>hello</b>,还有<b>world</b></div>';
let newHtml = htmlContent.replace(/<b>(.*?)<\/b>/g, function(match, oldText) {
  return '<b>' + oldText.toUpperCase() + '</b>';
});

注意:如果你的HTML里有嵌套标签(比如<b>文本<i>嵌套</i></b>)或者带属性的标签,正则会完全失效,这时候一定要用jQuery的DOM方法!

内容的提问来源于stack exchange,提问作者Lebedev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:02:43