javascript 仅将第一个匹配项替换为.replace

x6h2sr28  于 2022-12-02  发布在  Java
关注(0)|答案(1)|浏览(123)

我有一个函数,它会查看一个内容字符串和文档数组,并找到任何匹配,然后用户可以接受或拒绝该匹配(另一个函数)。当用户接受该匹配时,请参阅下面的acceptLink函数,然后我希望它替换第一个匹配,而不是所有匹配。
示例内容:“我第一次回家是去家里看狗的时候。”
阵列示例:{名称:'家',链接:'https://www.home.com/'}

预期输出:“我第一次回家www.home.com/< / a >是去看我家的狗。”

const acceptLink = (a) => {
      var reg = new RegExp('('+a.name+')', 'gi');
      const aTag = '<a class="newLink"  href=' + a.link + '>' + a.name + '</a>'
      setContent(content.replace(reg, aTag));
      const replaceContent = content.replace(reg,aTag)
      const filtered = allLinks.filter(obj => {
      return obj.name !== a.name;
  });

我错过了什么吗?

lf5gs5x2

lf5gs5x21#

删除g

const acceptLink = (a) => {
      var reg = new RegExp('('+a.name+')', 'i');
      const aTag = '<a class="newLink"  href=' + a.link + '>' + a.name + '</a>'
      setContent(content.replace(reg, aTag));
      const replaceContent = content.replace(reg,aTag)
      const filtered = allLinks.filter(obj => {
      return obj.name !== a.name;
  });

相关问题