日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2025/5/22 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用 js替换网页中的关键词为链接 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

要求把一段html腳本中的疾病名添加到疾病庫(kù)的鏈接,只添加一次,要避開(kāi)超鏈接或圖片鏈接。

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

結(jié)果找了半天,愣是沒(méi)找到替換后的效果,原來(lái)是有個(gè)圖片的title中包含糖尿病,被它捷足先登了。

因此要把<a>鏈接、<img>標(biāo)簽避開(kāi),但<p><div>等標(biāo)簽不用避開(kāi)

上圖:

?

[javascript]?view plaincopy
  • ???
  • ?s?=?"<a?href='http://www.yx129.com/bingli/1_310.html'>先看一個(gè)糖尿病病歷</a>?<br/>"?+??
  • ?????????"<IMG?style='vertical-align:middle'?width=40?src='http://yx129.com/api/minisite/images/skin/green/doctor_thumb_100.png'/>糖尿病王醫(yī)生<br/>"?+??
  • ?????????"糖尿病簡(jiǎn)介<br/>糖尿病發(fā)病率<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類標(biāo)簽全部替換為{{index}},然后處理剩下的文字,再把<a><img>標(biāo)簽的內(nèi)容替換回去??
  • ?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步:添加疾病庫(kù)鏈接后:<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>');?
  • 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

    總結(jié)

    以上是生活随笔為你收集整理的使用 js替换网页中的关键词为链接的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。