每次出现时添加到特定索引处的字符串

问题描述 投票:0回答:2

我正在尝试添加到

string
,在这种情况下,我想更改
href
并将
string
添加到
href
中每个
string
的开头。我已经弄清楚如何在一个实例中执行此操作,但如果字符串出现多次,则不会。有实现此目的的最佳实践吗?

如果只有一次出现,这就是我必须添加的内容(它也适用于多次出现,但只会改变第一次出现)。

  let stringOne = '<div>
    <p>A cool label</p>
    <a href="123idofanitem">Link 1</a>
    <p>A cool label</p>
    <span>
      <a href="1234idofanitem">Link 2</a>
    </span>
    <ul>
      <li>
        <a href="12345idofanitem">Link 3</a>
      </li>
      <li>
        <a href="123456idofanitem">Link 4</a>
      </li>
    </ul>
  </div>'

  let index = stringOne.indexOf('href="');
  let output = [stringOne.slice(0, index + 6),
     'https://www.google.com/',
      stringOne.slice(index + 6),].join('');//added +6 to account for href="

我正在尝试将所有

href
替换为
https://www.google.com/{existingHREF}

最后一点是,

stringOne
中可能有无限数量的链接,所以这就是为什么我试图找到一个解决方案,我可以在其中循环或类似的东西遍历所有链接并替换它们。

javascript typescript indexof
2个回答
0
投票

您可以将 RegExp 与 .replace 函数一起使用:

stringOne.replace(/href="/g, 'href="https://www.google.com/')

g
表示“全局”,是匹配字符串中每个出现的标志


0
投票

我会用正则表达式来做到这一点:

var rx = /href="/gi;
var output = rx.replace(stringOne, "$1https://google.com");
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.