要求把一段html脚本中的疾病名添加到疾病库的链接,只添加一次,要避开超链接或图片链接。

最初是用的    str.replace('糖尿病', '<a href=...>糖尿病</a>');

结果找了半天,愣是没找到替换后的效果,原来是有个图片的title中包含糖尿病,被它捷足先登了。

因此要把<a>链接、<img>标签避开,但<p><div>等标签不用避开

上图:

 s = "<a href='http://www.yx129.com/bingli/1_310.html'>先看一个糖尿病病历</a> <br/>" +"<IMG style='vertical-align:middle' width=40 src='http://yx129.com/api/minisite/images/skin/green/doctor_thumb_100.png'/>糖尿病王医生<br/>" +"糖尿病简介<br/>糖尿病发病率<br/><a href='baidu.com'>糖尿病症状<br/>" +"</a> ";document.write(s);a_reg = /<a(.*?)<\/a>/i; //a链接的正则img_reg = /<img(.*?)>/i; //图片链接的正则,防止图片的title,alt什么的属性包括疾病名而误替换var ix = 0;var arr_ele = [];//先把<a><img>2类标签全部替换为{{index}},然后处理剩下的文字,再把<a><img>标签的内容替换回去while(true){if(-1 == s.toLowerCase().indexOf('<a ') && -1 == s.toLowerCase().indexOf('<img ')){break;}a_match = s.match(a_reg);if(a_match){//console.log(a_match);arr_ele.push(a_match[0]);s = s.replace(a_reg, '{{' +ix+ '}}');ix++;}img_match = s.match(img_reg);if(img_match){//console.log(img_match);arr_ele.push(img_match[0]);s = s.replace(img_reg, '{{' +ix+ '}}');ix++;}console.log(s);
}document.write('<br>-------------------------<br>第1步:把链接替换为{{index}}后:<br>'+s+'<br>');s = s.replace(/糖尿病/i, "<a target='_blank' href='http://jibing.yx129.com/tnb'>糖尿病</a>");document.write('<br>-------------------------<br>第2步:添加疾病库链接后:<br>'+s+'<br>');if(arr_ele){for(var i=0; i<arr_ele.length; i++){s = s.replace('{{' + i + '}}', arr_ele[i]);}
}document.write('<br>-------------------------<br>第3步:把链接替换回去之后:<br>'+s+'<br>');

js替换关键词为链接,只替换一次,要避开超链接或图片相关推荐

  1. 使用 js替换网页中的关键词为链接

    要求把一段html脚本中的疾病名添加到疾病库的链接,只添加一次,要避开超链接或图片链接. 最初是用的    str.replace('糖尿病', '<a href=...>糖尿病</ ...

  2. java pdf替换内容_java PDF批量替换关键词

    java PDF批量替换关键词 要求:将要替换的字段封装到一个类中,并规定字段名与PDF中关键字的映射. 准备: 关键词信息类-----MatchItem package pdf.replace; i ...

  3. php关键词替换的类(避免重复替换_保留与还原原始链接),浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)...

    时间:2015-09-24来源:www.aspku.com 作者:源码库 文章热度: ℃ 一个关键词替换的类,这个类主要用于关键词过滤,或者是关键词查找替换方面,关键词替换,其实就是一个str_rep ...

  4. Vue 菜单路由(router)只替换对应主页面中内容,而不是整个home页面的router index.js的两种设置方法

    在系统登录到系统主页面之后,通过点击不同的菜单动态在主页面内替换相应的内容,而保持菜单栏和标题栏内容不变,可以通过以下两种方式实现,两种方式的原理都是相同的, 方式一:在路由设置时,设置一个home路 ...

  5. php正则替换%3cbr%3e_php利用正则替换过滤掉js(script)代码

    利用php中的preg_replace正则匹配函数过滤掉网页中的js代码,preg_replace()中的第四个参数中表示替换的次数,默认是-1,表示替换全部:如果只想替换2次,可以写为 preg_r ...

  6. js 杠n换行符全部替换br

    js \n全部替换br常用 //js 只替换第一个 function (str){return str.replace('\n','<br/>'); } //js \n全部替换<br ...

  7. highlight.js代码高亮后把空格替换成了无间断空格U+00A0

    原文链接:http://xs.deld.vip/article/show/10.html 前端高亮正确,但复制高亮后的代码空格被处理成了无间断空格U+00A0 示例: 复制到的代码粘贴到viscode ...

  8. JS实现文本中查找并替换字符

    JS实现文本中查找并替换字符 效果图: 代码如下,复制即可使用: <!DOCTYPE html><html> <head><style type=" ...

  9. phpcmsV9 关键词keywords删除、替换与修改

    phpcmsV9 关键词keywords删除.替换与修改 phpcmsV9的关键词设置,并不能像其他功能调用一样,刷新网页就能查看效果,这个是已经写到 了后台的数据库里面.所以,需要进入数据库管理的后 ...

最新文章

  1. Compass(更新中。。。)
  2. 皮一皮:盖茨这婚离的是多土豪...
  3. matlab 排列 拆分,在matlab中将列表拆分为多个变量
  4. MongoDB-数据类型
  5. Linux启动重启停止DNS,ubuntu怎么开机停止启动smbd
  6. 动态导入模块__import__(str) importlib标准库
  7. sklearn tfidf求余弦相似度_【基础算法 】文本相似度计算
  8. Nokia n900使用
  9. Gambit中,interface和interior的区别
  10. 武汉大学2020年大学生程序设计大赛决赛(重现赛)J (oeis or 卡特兰数+可重集排列数)
  11. 让人感到惊艳的5款数据可视化大屏产品
  12. 法人 法人代表和法定代表人的区别
  13. 地理坐标系与投影坐标系区别与联系
  14. 【Matlab学习手记】三维矢量场图
  15. GetDC和BeginPaint
  16. win7全屏_Win7系统截图的方法
  17. 食物与体质 营养食谱
  18. FreeSWITCH 语音识别 阿里云ASR 2.0接口 接口实现
  19. 第五季完美童模 形象大使滕文泽现场走秀回顾
  20. 联想MIIX720二合一笔记本键盘维修(带键盘灯款)

热门文章

  1. 北邮在线计算机,北邮在线圆我IT梦
  2. java模拟cpu返回_Java CPU 占用高 模拟及排查
  3. 文献—Emergent simplicity in microbial community assembly--论文全过程详细阅读整理与翻译
  4. 随笔——研一,研究不出啥是啥
  5. 不忘初心,方得始终。初心易得,始终难守!
  6. 网站信息被恶意篡改如何解决?
  7. pic2pdf“存盘出错,请检查目标目录”解决办法
  8. ESD与EOS(surge)防护器件选型
  9. 红蓝对抗之Windows内网渗透
  10. VB.net项目源码