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

如何在前端使用JavaScript将特定文本模式替换为HTML标签?

解决方案

你可以用**正则表达式配合String.replace()**实现全局替换,把自定义的日期标记转换成带样式的HTML标签,具体实现如下:

核心代码

方式一:批量处理整个容器内容

// 获取目标容器
const container = document.querySelector('.wrap');
// 定义正则:匹配###YYYY-MM-DD###格式,捕获日期部分,全局匹配所有符合项
const dateRegex = /###(\d{4}-\d{2}-\d{2})###/g;
// 执行替换并更新容器内容
container.innerHTML = container.innerHTML.replace(dateRegex, '<span class="date">$1</span>');

方式二:精准处理每个figcaption元素

如果只需要替换figcaption内的标记,用这个更安全:

// 遍历所有目标figcaption
document.querySelectorAll('.wrap figcaption').forEach(el => {
  const dateRegex = /###(\d{4}-\d{2}-\d{2})###/g;
  el.innerHTML = el.innerHTML.replace(dateRegex, '<span class="date">$1</span>');
});

正则说明

  • ###:匹配你自定义的前后分隔符(如果换其他符号,比如[[[和]]],要转义特殊字符,改成/\[\[\[(\d{4}-\d{2}-\d{2})\]\]\]/g)
  • (\d{4}-\d{2}-\d{2}):捕获YYYY-MM-DD格式的日期,$1在替换时会被捕获到的日期内容替换
  • g:全局匹配标志,确保替换页面中所有符合模式的内容

自定义分隔符示例

如果改用@@@作为分隔符,只需要修改正则:

const dateRegex = /@@@(\d{4}-\d{2}-\d{2})@@@/g;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:26:11