Javascript高级替换 - RegExp?

时间:2016-04-12 16:08:59

标签: javascript regex web

我想根据规则在任何页面上自动创建超链接。例如,我想找到以' ate'结尾的所有单词。并将它们转换为超链接,包括单词本身。像:

  • &#39;调节&#39;变为'<a href="www.myurl.com/Regulate">Regulate</a>'
  • &#39;聚集&#39;变为'<a href="www.myurl.com/Congregate">Congregate</a>'

等等。

首先,我尝试将所有childNodes拆分为单词,将每个单词与RegExp进行比较,然后使用该单词构造新文本并进行替换。这确实有用......但如果我把它应用到任何长度的页面都需要永远。

有没有办法用直接的.Replace()RegExp?

来做到这一点

2 个答案:

答案 0 :(得分:0)

您可以使用此代码:

var re = /\b(\w+ate)\b/g; 
var str = 'your string';
var subst = '<a href="www.myurl.com/$1">$1</a>'; 

var result = str.replace(re, subst);

Live demo

答案 1 :(得分:0)

此代码对所有a执行循环,检查a正文是否以ate终止,然后更新其href属性值。

Live demo

var rgx=/\b(\w+ate)\b/g;
$('a').each(function(i,e){
     if(rgx.test($(e).html().trim())){

         $(e).attr('href','http://www.myurl.com/'+$(e).html().trim())
     }

})

Live demo