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

如何用JS的replace与RegExp实现指定前缀字符串的整体字体标签替换?

解决方案:匹配指定格式内容并包裹标签

核心思路

构造正则表达式匹配**以指定前缀开头、格式为「前缀-数字/数字」**的完整内容,再将匹配到的整段内容用黑色<FONT>标签包裹。

代码实现

首先转义匹配前缀中的正则特殊字符(如.、*、+等)避免语法错误,再构造目标正则执行替换:

// 转义正则特殊字符的工具函数
function escapeRegExp(str) {
  return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}

// 原始字符串
var font_str = "<FONT color='red'>aaa-1/2</br>bbb-1/3</br>aaa-1/20</FONT>";
// 指定匹配前缀
var match = 'aaa';

// 转义前缀并构造正则
var escapedMatch = escapeRegExp(match);
var regex = new RegExp(escapedMatch + '-\\d+/\\d+', 'g');

// 执行替换:$& 指代整个匹配到的内容
var result = font_str.replace(regex, "<FONT face='monospace' color='black'>$&</FONT>");

console.log(result);

正则说明

  • escapedMatch:转义后的匹配前缀,确保特殊字符(如.、*)被识别为普通字符
  • -\\d+/\\d+:匹配格式要求的-数字/数字部分,\d+表示一个或多个数字
  • g:全局匹配标志,替换所有符合条件的内容
  • $&:替换时指代整个匹配到的字符串,实现整段内容的包裹

执行结果

输出结果与期望一致:

"<FONT color='red'><FONT face='monospace' color='black'>aaa-1/2</FONT></br>bbb-1/3</br><FONT face='monospace' color='black'>aaa-1/20</FONT></FONT>"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:50:18