javascript - 替换字符串(带和不带括号),URL 除外
问题描述
我正在尝试用单词作为链接替换 CMS 文章中的某些单词。
这是一个网站,我想通过文章 ID 将某些单词链接到不同的文章。
到目前为止,这是我的代码:
let replace = ' (' + word + ') ';
html = html.replace(new RegExp(replace +'(?!(.(?!<a))*</a>)(?!(.(?!<img))*</img>)','i'), ' <span id="' + element.id+ '">' + replace + '</span> ');
现在我得到关于我的词的链接,如“示例”或“快乐”或“代码”,但我也希望它适用于(示例)或(快乐)或(代码)
我试图像这样进行第二次替换:
let replace2 = ' \(' + word + '\) ';
html = html.replace(new RegExp(replace2 +'(?!(.(?!<a))*</a>)(?!(.(?!<img))*</img>)','i'), ' <span id="' + element.id+ '">' + replace2 + '</span> ');
但它不是这样工作的......
有任何想法吗?- 也许我应该使用完全不同的正则表达式,但到目前为止很多替换了图像和普通链接中的单词。这个可行,但我不是专家...
解决方案
推荐阅读
- powershell - PowerShell 中的 -UseDefaultCredential 与 -Credential(401 错误)
- mysql - MySQL if else 语句与多查询
- sql - 在 shell 脚本中编写循环以读取 HIVE Select 的输出
- shopify - 在 Shopify Liquid 中计算特定邮政编码的今天订单
- c - Printf 输出顺序错误 - 我该如何解决?
- reactjs - React Redux rest-api 中的空道具 Object.keys
- python - Dask 数据框的引导示例
- tensorflow - 随机 3d 图像切片张量流数据,NoneType 形状的深度
- c - 从 APC 调用 LdrLoadDll 会导致访问冲突
- c++ - 如何将文件中的 UTF-8 文本转换为可以迭代的容器,并检查每个符号在 C++ 中是否为字母数字?