js关键字过滤并且高亮显示

本文介绍了一个简单的JavaScript函数,用于在给定字符串中高亮显示预定义的关键词。通过创建一个关键词映射表并记录最长关键词长度,该函数能有效地识别并用红色字体标记这些关键词。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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));

            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值