我有一些字符串,如“de456”“us7515”,它是de/us和3到10位数字。正则表达式捕获并替换html标签外的文本模式
我希望捕获所有这些文件,并用超链接替换它们,除非它们已经在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
所以我可以做1 2通过使用jquery正则表达式exec和string.replace,但我不知道该怎么做3. 请指教。非常感谢你提前。
你不应该在html字符串中使用正则表达式替换字符串...而应该使用基于DOM元素的替换 – 2014-10-27 03:39:28