var keys = ['关键字1','关键字2'];
var prepareKeys = function() {
if (!prepareKeys.$map) {
var map = {};
var maxLength = 0;
for ( var i = 0; i < keys.length; i++) {
map[keys[i]] = 1;
maxLength = Math.max(keys[i].length, maxLength);
}
prepareKeys.$map = {
map : map,
length : maxLength
}
}
return prepareKeys.$map;
}
var colorKeyword = function(str) {
var info = prepareKeys();
var output = [];
while (str) {
var sub = str.substring(0, info.length);
str = str.substring(info.length);
while (!info.map[sub] && sub) {
str = sub.charAt(sub.length - 1) + str;
sub = sub.slice(0, -1);
//console.log(sub);
}
//console.log('color', sub);
if (sub) {
output.push( '<font color="red">', sub, '</font>');
} else {
output.push(str.charAt(0));
str = str.substring(1);
}
}
return output.join('' );
}
function filter(){
var input = $("#sms_content" ).val();
$( "#result").html(colorKeyword(input));
}
本文介绍了一个简单的JavaScript函数,用于在给定字符串中高亮显示预定义的关键词。通过创建一个关键词映射表并记录最长关键词长度,该函数能有效地识别并用红色字体标记这些关键词。

389

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



