我是一个主做企业网站的小小小技术,想实现以下功能:
在后台发布产品说明信息或新闻时,要自动为内容中出现的(事先设置好的)关键词添加网站链接,每个关键词只在第一次出现时添加。
newsContent = newsContent.replace(keyWord, "<a href=url>keyWord</a>") 问题:
如果一个关键词中包含另一个关键词时,该怎么处理? 例如有以下关键词(顺序随机且不进行排序):临沂企业网站建设,网站,临沂企业,互联网,免烧砖机
如果某新闻中同时包含以上关键词,在给第一个关键词添“临沂企业网站建设”加完链接后,怎么让第二个关键词“网站”不会错误地添加到第一个词中? 请高手指教。
在后台发布产品说明信息或新闻时,要自动为内容中出现的(事先设置好的)关键词添加网站链接,每个关键词只在第一次出现时添加。
newsContent = newsContent.replace(keyWord, "<a href=url>keyWord</a>") 问题:
如果一个关键词中包含另一个关键词时,该怎么处理? 例如有以下关键词(顺序随机且不进行排序):临沂企业网站建设,网站,临沂企业,互联网,免烧砖机
如果某新闻中同时包含以上关键词,在给第一个关键词添“临沂企业网站建设”加完链接后,怎么让第二个关键词“网站”不会错误地添加到第一个词中? 请高手指教。
参考
var s='我是一个主做企业网站的小小小技术,想实现以下功能:\
在后台发布产品说明信息或新闻时,要自动为内容中出现的(事先设置好的)关键词添加网站链接,每个关键词只在第一次出现时添加。\
newsContent = newsContent.replace(keyWord, "keyWord")\
问题:\
如果一个关键词中包含另一个关键词时,该怎么处理?\
例如有以下关键词(顺序随机且不进行排序):临沂企业网站建设,网站,临沂企业,互联网,免烧砖机\
如果某新闻中同时包含以上关键词,在给第一个关键词添“临沂企业网站建设”加完链接后,怎么让第二个关键词“网站”不会错误地添加到第一个词中?'
, kws = '临沂企业网站建设,网站,临沂企业,互联网,免烧砖机'.split(',').sort(function (a, b) { return b.length - a.length; })//按长度排序,长的在前面for (var i = 0; i < kws.length; i++) s = s.replace(new RegExp(kws[i], 'g'), '__' + i.toString() + '__');
for (var i = 0; i < kws.length; i++) s = s.replace(new RegExp('__' + i + '__', 'g'), '<a href="search.aspx?kw=' + kws[i] + '">' + kws[i] + '</a>');
document.write(s);
简单的方法 关键字 按照字数由小到大排序 这样 替换的时候 就不存在你的问题了 因为已经有了</a>标记谢谢楼上三位!其实我js很差,只是想在这边找到问题的解决方法。谢谢showbo,正则我看不懂,不过你的排序方法俺收下了!再次感谢三位!