最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

見(jiàn)下面的HTML代碼:

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

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

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

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

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

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

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

廢話不多說(shuō),最后給出一個(gè)完整的批量替換實(shí)例:

<!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>無(wú)標(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>

替換后的效果:

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

相關(guān)文章

  • 利用JavaScript創(chuàng)建一個(gè)兔年春節(jié)倒數(shù)計(jì)時(shí)器

    利用JavaScript創(chuàng)建一個(gè)兔年春節(jié)倒數(shù)計(jì)時(shí)器

    這篇文章主要介紹了如何利用JavaScript創(chuàng)建一個(gè)兔年春節(jié)倒數(shù)計(jì)時(shí)器,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JavaScript有一定的幫助,需要的可以參考一下
    2023-01-01
  • 使用js 設(shè)置url參數(shù)

    使用js 設(shè)置url參數(shù)

    本篇文章是對(duì)使用js設(shè)置url參數(shù)的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07
  • 詳解ECMAScript6入門--Class對(duì)象

    詳解ECMAScript6入門--Class對(duì)象

    本篇文章主要介紹了詳解ECMAScript6入門--Class對(duì)象,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • js以對(duì)象為索引的關(guān)聯(lián)數(shù)組

    js以對(duì)象為索引的關(guān)聯(lián)數(shù)組

    在代碼邏輯中更多的是用關(guān)聯(lián)數(shù)組的方式。但即使是這樣我們也很少使用對(duì)象類型作為鍵值對(duì)的鍵名。
    2010-07-07
  • ES7中利用Await減少回調(diào)嵌套的方法詳解

    ES7中利用Await減少回調(diào)嵌套的方法詳解

    大家都知道在ES7中有了標(biāo)準(zhǔn)的回調(diào)函數(shù)嵌套的解決方案,新增了 async/await兩個(gè)關(guān)鍵詞,所以這篇文章主要給大家介紹了關(guān)于Javascript中如何利用Await減少回調(diào)嵌套的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • 淺談Three.js截圖并下載的大坑

    淺談Three.js截圖并下載的大坑

    這篇文章主要介紹了Three.js截圖并下載的大坑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Invalid?Host?header問(wèn)題該如何解決的幾種方式

    Invalid?Host?header問(wèn)題該如何解決的幾種方式

    Invalid Host header是一個(gè)常見(jiàn)的錯(cuò)誤信息,通常發(fā)生在Web應(yīng)用程序中,下面這篇文章主要給大家介紹了關(guān)于Invalid?Host?header問(wèn)題該如何解決的幾種方式,需要的朋友可以參考下
    2024-09-09
  • javascript 動(dòng)態(tài)修改樣式和層疊樣式表代碼

    javascript 動(dòng)態(tài)修改樣式和層疊樣式表代碼

    javascript 動(dòng)態(tài)修改樣式和層疊樣式表代碼,需要的朋友可以參考下。
    2010-04-04
  • Js判斷兩個(gè)數(shù)組是否相等的幾種常見(jiàn)場(chǎng)景

    Js判斷兩個(gè)數(shù)組是否相等的幾種常見(jiàn)場(chǎng)景

    無(wú)論是在開發(fā)中還是面試時(shí),在js中判斷變量是否相等,都是一個(gè)比較常見(jiàn)的問(wèn)題,這篇文章主要給大家介紹了關(guān)于Js判斷兩個(gè)數(shù)組是否相等的幾種常見(jiàn)場(chǎng)景,需要的朋友可以參考下
    2024-07-07
  • 一文詳解requestAnimationFrame請(qǐng)求動(dòng)畫幀

    一文詳解requestAnimationFrame請(qǐng)求動(dòng)畫幀

    requestAnimationFrame是一個(gè)用于動(dòng)畫效果的 API,它使用瀏覽器的刷新率來(lái)執(zhí)行回調(diào)函數(shù),通常每秒鐘執(zhí)行60次,這篇文章主要給大家介紹了關(guān)于requestAnimationFrame請(qǐng)求動(dòng)畫幀的相關(guān)資料,需要的朋友可以參考下
    2023-12-12

最新評(píng)論

贞丰县| 项城市| 潮州市| 伽师县| 武定县| 吴桥县| 大英县| 沅江市| 郓城县| 章丘市| 双流县| 库尔勒市| 尉氏县| 石河子市| 仁寿县| 右玉县| 金门县| 庆云县| 安顺市| 林芝县| 囊谦县| 新竹县| 那坡县| 怀集县| 遂溪县| 雅安市| 石楼县| 邵阳县| 如东县| 疏勒县| 肥乡县| 临沭县| 南川市| 平乐县| 海安县| 旬邑县| 罗定市| 宾阳县| 夏邑县| 同江市| 灵川县|