欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS批量替換內(nèi)容中關(guān)鍵詞為超鏈接

 更新時間:2017年02月20日 09:40:28   作者:虛若影  
本文主要介紹了JS批量替換內(nèi)容中關(guān)鍵詞為超鏈接,避開已存在的鏈接和alt、title中的關(guān)鍵詞的方法。下面跟著小編一起來看下吧

懂點(diǎn)seo的人都知道要給內(nèi)容中關(guān)鍵詞加上鏈接,形成站內(nèi)錨文本鏈接,這對seo有很大的幫助。

思路就是在數(shù)據(jù)庫中錄入若干個關(guān)鍵詞和關(guān)鍵詞對應(yīng)的鏈接,當(dāng)然鏈接可以根據(jù)關(guān)鍵詞的id自動生成,或者直接用關(guān)鍵詞作為鏈接參數(shù),如?tag=1、?kw=關(guān)鍵詞。

這個問題不是簡單的一個批量replace那么簡單,要考慮到已經(jīng)存在的超鏈接,不能將里面的文字再次替換為超鏈接,還有就是圖片的alt屬性,或者其他標(biāo)簽的title屬性,里面的文字也不該被替換。

見下面的HTML代碼:

【<a  rel="external nofollow" rel="external nofollow" >九寨溝概要</a>】九寨溝位于四川省阿壩州九寨溝縣境內(nèi),5A景點(diǎn),世界自然遺產(chǎn),有"五絕"之景色,我感到最絕的是海子,此生不能不去的景區(qū)。一年四季適合游,秋天是最美的。
<img src="" alt="九寨溝圖片" title="九寨溝圖片" />

這種情況你不能直接將九寨溝替換為超鏈接啊,不然第一個鏈接就會被替換為鏈接中包含鏈接,然后是圖片上的alt和title也替換了一個鏈接上去,這肯定是不符合HTML規(guī)范的。

情景一:排除屬性中的關(guān)鍵詞

匹配的正則為:關(guān)鍵詞[^<]*>,所以排除這個關(guān)鍵詞的正則為:關(guān)鍵詞?!([^<]*>)。

情景二:排除鏈接中的關(guān)鍵詞

匹配的正則為:關(guān)鍵詞[^<]*<\/a>,所以排除這個關(guān)鍵詞的正則為:關(guān)鍵詞?!([^<]*<\/a>)。

整合兩種情況的結(jié)果為:var reg=/關(guān)鍵詞(?!([^<]*>)|([^<]*<\/a>))/ig;

廢話不多說,最后給出一個完整的批量替換實例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標(biāo)題文檔</title>
</head>
<body>
<div id="content">
【<a  rel="external nofollow" rel="external nofollow" >九寨溝概要</a>】九寨溝位于四川省阿壩州九寨溝縣境內(nèi),5A景點(diǎn),世界自然遺產(chǎn),有"五絕"之景色,我感到最絕的是海子,此生不能不去的景區(qū)。一年四季適合游,秋天是最美的。
<img src="" alt="九寨溝圖片" title="九寨溝圖片" />
</div>
<hr />
<div id="new">
</div>
<script>
var c=document.getElementById("content").innerHTML;
//var reg=/九寨溝(?!([^<]*>)|([^<]*<\/a>))/ig;
var json=[
  {'key':'九寨溝','url':'/九寨溝/'}
  ,{'key':'景點(diǎn)','url':'/景點(diǎn)/'}
  ,{'key':'景區(qū)','url':'/景區(qū)/'}
 ];
var reg;
for(var i=0;i<json.length;i++){
 var j=json[i];
 reg=new RegExp(j.key+"(?!([^<]*>)|([^<]*<\/a>))","ig");
 c = c.replace(reg,"<a href='"+j.url+"'>"+j.key+"</a>");
}
document.getElementById("new").innerHTML=c;
</script>
</body>
</html>

替換后的效果:

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

  • Js判斷兩個數(shù)組是否相等的幾種常見場景

    Js判斷兩個數(shù)組是否相等的幾種常見場景

    無論是在開發(fā)中還是面試時,在js中判斷變量是否相等,都是一個比較常見的問題,這篇文章主要給大家介紹了關(guān)于Js判斷兩個數(shù)組是否相等的幾種常見場景,需要的朋友可以參考下
    2024-07-07
  • JavaScript中的Promise詳解

    JavaScript中的Promise詳解

    這篇文章主要介紹了JavaScript中的Promise使用詳解,promise對象是JS進(jìn)階學(xué)習(xí)中的重要知識點(diǎn),需要的朋友可以參考下
    2021-10-10
  • JavaScript幾種形式的樹結(jié)構(gòu)菜單

    JavaScript幾種形式的樹結(jié)構(gòu)菜單

    今天我主要講3種不同展示的JavaScript樹結(jié)構(gòu)菜單,分別是懸浮層樹(Tree)、右鍵菜單樹(ContextMenu)和節(jié)點(diǎn)樹(TreeMenu),目前都支持無限級層次。
    2010-05-05
  • js 遍歷對象的屬性的代碼

    js 遍歷對象的屬性的代碼

    js 遍歷對象的屬性的代碼,遍歷出對象的屬性可以用for in語句使用方法
    2011-12-12
  • 在組件外(.js文件)中使用pinia的解決方法

    在組件外(.js文件)中使用pinia的解決方法

    這篇文章主要給大家介紹了關(guān)于在組件外(.js文件)中使用pinia的解決方法, pinia是Vue的最新一代的輕量級狀態(tài)管理插件,它允許跨組件/頁面共享狀態(tài),需要的朋友可以參考下
    2024-06-06
  • 微信小程序?qū)崿F(xiàn)驗證碼倒計時效果

    微信小程序?qū)崿F(xiàn)驗證碼倒計時效果

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)驗證碼倒計時效果,手機(jī)登錄、填手機(jī)號獲取驗證碼,倒計時后重新獲取效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 30分鐘快速實現(xiàn)小程序語音識別功能

    30分鐘快速實現(xiàn)小程序語音識別功能

    最近需要在小程序上實現(xiàn)語音識別,將需要用到的功能都總結(jié)下,供大家參考。語音識別用的是科大訊飛,文中給出了詳細(xì)的實現(xiàn)方法介紹,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • js Array對象的擴(kuò)展函數(shù)代碼

    js Array對象的擴(kuò)展函數(shù)代碼

    有時候我們需要對js的array對象擴(kuò)展一些功能,這里簡單介紹下,方便需要的朋友
    2013-04-04
  • layui select獲取自定義屬性方法

    layui select獲取自定義屬性方法

    今天小編就為大家分享一篇layui select獲取自定義屬性方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • layui實現(xiàn)圖片虛擬路徑上傳,預(yù)覽和刪除的例子

    layui實現(xiàn)圖片虛擬路徑上傳,預(yù)覽和刪除的例子

    今天小編就為大家分享一篇layui實現(xiàn)圖片虛擬路徑上傳,預(yù)覽和刪除的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09

最新評論