gpt4 book ai didi

javascript - 正则表达式捕获并替换 html 标签之外的文本模式

转载 作者:行者123 更新时间:2023-12-03 11:34:28 29 4
gpt4 key购买 nike

我有一些字符串,例如“de456”“us7515”,它是 de/us 和 3 到 10 位数字。

我希望捕获所有这些内容并用超链接替换它们,除非它们已经位于 html 标记内。

示例:

  1. 应该改变:

    <div> de485 </div> => <div> <a href = "xxx.com/de485">de485</a></div>
    <span> i need us1234 </span> => <span> i need <a href = "xxx.com/us1234"> us1234 </a></span>
  2. 不应更改:

    <a href ="github.com/xxxxx/us1234> link </a> => <a href ="github.com/xxxxx/us1234> link </a>
  3. 应该部分改变

    <a href ="github.com/xxxxx/us1234> us1234 </a> => <a href ="github.com/xxxxx/us1234> <a href = "xxx.com/us1234"> us1234 </a> </a>

我已经写了两个正则表达式:

匹配文本模式:

de456
us1234

/\b(us\d{3,10}|de\d{3,10})\b/ig

匹配打开的 html 标记内的文本模式

<a href = "github.com/de456">

/<\s*\w.*\b(us\d{3,10}|de\d{3,10})\b.?>/ig

所以我可以通过使用 jquery regex exec 和 string.replace 来执行 1 和 2,但我不知道如何执行 3。请指教。预先非常感谢您。

最佳答案

我试试这个。有需要的请采纳。

(?<![\/])((?:de|us)[0-9]{3,10})

查看演示: http://regex101.com/r/oS0tS3/2

关于javascript - 正则表达式捕获并替换 html 标签之外的文本模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26580849/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com