我有一些字符串,例如“de456”“us7515”,它是 de/us 和 3 到 10 位数字。
我希望捕获所有这些内容并用超链接替换它们,除非它们已经位于 html 标记内。
示例:
应该改变:
<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>
不应更改:
<a href ="github.com/xxxxx/us1234> link </a> => <a href ="github.com/xxxxx/us1234> link </a>
应该部分改变
<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。 请指教。预先非常感谢您。
最佳答案
关于javascript - 正则表达式捕获并替换 html 标签之外的文本模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26580849/