使用 js+正则表达式为关键词添加链接


Posted in Javascript onNovember 11, 2014

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

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

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

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

上图:

使用 js+正则表达式为关键词添加链接

 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+正则表达式为关键词添加链接的全部代码了,简单吧,有需要的小伙伴可以参考下

Javascript 相关文章推荐
基于jquery的回到页面顶部按钮
Jun 27 Javascript
JavaScript高级程序设计(第3版)学习笔记5 js语句
Oct 11 Javascript
JavaScript设置获取和设置属性的方法
Mar 04 Javascript
Jquery ajax请求导出Excel表格的实现代码
Jun 08 Javascript
JS函数多个参数默认值指定方法分析
Nov 28 Javascript
bootstrap的工具提示实例代码
May 17 Javascript
ES6入门教程之Class和Module详解
May 17 Javascript
js实现扫雷小程序的示例代码
Sep 27 Javascript
微信小程序实现商品属性联动选择
Feb 15 Javascript
小程序实现搜索框功能
Mar 26 Javascript
vue router-link 默认a标签去除下划线的实现
Nov 06 Javascript
JavaScript Dom实现轮播图原理和实例
Feb 19 Javascript
jQuery 动态云标签插件
Nov 11 #Javascript
javascript 回调函数详解
Nov 11 #Javascript
JSON格式化输出
Nov 10 #Javascript
再谈javascript原型继承
Nov 10 #Javascript
让angularjs支持浏览器自动填表
Nov 10 #Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
Nov 10 #Javascript
前端必备神器 Snap.svg 弹动效果
Nov 10 #Javascript
You might like
JavaScript触发器详解
2007/03/10 Javascript
JavaScript中的其他对象
2008/01/16 Javascript
JavaScript库 开发规则
2009/01/31 Javascript
Jquery ui css framework
2010/06/28 Javascript
为Extjs加加速(javascript加速)
2010/08/19 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
javascript中通过arguments参数伪装方法重载
2014/10/08 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
javascript实现数独解法
2015/03/14 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
js实现图片无缝滚动
2015/12/23 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
2016/05/20 Javascript
AngularJS 实现弹性盒子布局的方法
2016/08/30 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
Three.js实现绘制字体模型示例代码
2017/09/26 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
python多线程抓取天涯帖子内容示例
2014/04/03 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
详解python内置模块urllib
2020/09/09 Python
Python识别处理照片中的条形码
2020/11/16 Python
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
广州一家公司的.NET面试题
2016/06/11 面试题
总经理秘书工作职责
2013/12/26 职场文书
七夕情人节促销方案
2014/06/07 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
高三数学复习备考教学反思
2016/02/18 职场文书