//
参数设置
var
defKeyWord
=
"
十六大 | 出版社 | 波特的图书 | 国有 | 清醒 | 进行 | 全党| 面向
"
; 
//
输入要替换的字符,字符间用 “ | ”分隔
var
keyWordBegin
=
"
记者从人
"
;
//
要替换内容的起始字符
var
keyWordEnd
=
"
据汤年
"
;
//
要替换内容的结束字符

/**/
/****************************/

var
tagName
=
"
body
"
;
var
aLLContent
=
document.getElementsByTagName(tagName).item(
0
).innerHTML;
var
fileContent;
var
headContent
=
""
;
var
endContent
=
""
;
var
locationOfKeyWordBegin
=
aLLContent.indexOf(keyWordBegin);
var
locationOfKeyWordEnd
=
aLLContent.indexOf(keyWordEnd);
if
(locationOfKeyWordBegin
==
-
1
&&
locationOfKeyWordEnd
==
-
1
&&
keyWordEnd
!=
""
&&


keyWordBegin
!=
""
)
...
{
}

else
if
(locationOfKeyWordBegin
!=
-
1
&&
locationOfKeyWordEnd
!=
-
1
&&
keyWordEnd
!=
""
)
...
{
fileContent = aLLContent.substring(locationOfKeyWordBegin, locationOfKeyWordEnd + 
keyWordEnd.length);
headContent = aLLContent.substring(0, locationOfKeyWordBegin);
endContent = aLLContent.substring(locationOfKeyWordEnd + keyWordEnd.length);
splitKeyWord(defKeyWord);
}

else
if
(keyWordEnd
==
""
||
aLLContent.indexOf(keyWordBegin)
!=
-
1
)
...
{
fileContent = aLLContent.substring(locationOfKeyWordBegin);
headContent = aLLContent.substring(0, locationOfKeyWordBegin);
splitKeyWord(defKeyWord);
}

else
if
(keyWordBegin
==
""
&&
keyWordEnd
==
""
)
...
{
fileContent = aLLContent;
splitKeyWord(defKeyWord);
}



function
splitKeyWord()
...
{
var defChar=defKeyWord.split(" | ");
var keyWord;
var links;
var textFinished = new Array(); 
for (i = 0; i < defChar.length; i++) 
...{
keyWord = defChar[i];
links = "<a href="html/jsoperators.asp?gjc=" + keyWord + "">" + keyWord + 
"</a>";
fileContent = executeReplace(keyWord, links);
}

if (keyWordEnd == "") ...{
document.getElementsByTagName(tagName).item(0).innerHTML = 
aLLContent.substring(0, aLLContent.indexOf(keyWordBegin)) + fileContent;
}
else ...{
document.getElementsByTagName(tagName).item(0).innerHTML = 
aLLContent.substring(0, aLLContent.indexOf(keyWordBegin)) + fileContent + 
aLLContent.substring(aLLContent.indexOf(keyWordEnd));
}
return;
}


function
executeReplace(keyWord, links)
...
{
var locationOfKeyWord;
var locationOfLinkEnd;
var stringOfChecked;
var locationOfStart = 0;
var lenOfkeyWord = keyWord.length;
var stringSaved = new Array();
var i = 0;
var endOfChecked;
var mark = 0;
while ((locationOfKeyWord = fileContent.indexOf(keyWord, locationOfStart)) != 

-1) ...{
stringOfChecked = fileContent.substring(locationOfKeyWord);
locationOfLinkEnd = stringOfChecked.toLowerCase().indexOf("</a>", 
locationOfStart);
endOfChecked = stringOfChecked.indexOf(keyWord, links.length);

if (locationOfLinkEnd != -1) ...{
if (stringOfChecked.toLowerCase().indexOf('<a href') == -1) ...{
locationOfStart = locationOfKeyWord + lenOfkeyWord;
stringSaved[i] = stringOfChecked;
i = i + 1;
mark = 1;
continue;
}
else ...{
stringOfChecked = stringOfChecked.replace(keyWord, 
links);
}
}
else ...{
stringOfChecked = stringOfChecked.replace(keyWord, links);
}
locationOfBegin = locationOfStart;
locationOfOld = locationOfKeyWord + lenOfkeyWord - 1;
locationOfStart = locationOfKeyWord + lenOfkeyWord;

if (endOfChecked == -1) ...{
stringSaved[i] = stringOfChecked;
}
else ...{
stringSaved[i] = stringOfChecked.substring(0, endOfChecked - 
1);
}
if (i == 0) ...{
stringSaved[i] = fileContent.substring(0, locationOfKeyWord) + 
stringSaved[i] ;
}
i = i + 1;
mark = 1;
}

if (mark == 0) ...{
return fileContent;
} 
else ...{
return(stringSaved.join(''));
}
}
本文介绍了一种使用JavaScript进行文本处理的方法,通过定位特定字符串并替换为带有超链接的形式,实现了对指定关键词的有效标记。此方法适用于需要对大量文本进行关键词高亮显示的应用场景。

被折叠的 条评论
为什么被折叠?



