Js 特效案例-敏感词过滤

555 阅读2分钟

这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战

很多网站有敏感词过滤的效率,这篇文章就用Javascript大致模拟下这个效果的实现思路。

一、HTML布局

实现设计好相关需要的区域,html布局如下:

1、标题区域

2、评论编辑区域

3、发布按钮

4、经敏感词过滤后的评论显示区域

布局核心html代码如下:

<div class="sensitive">
        <h2>敏感词过滤</h2>
        <textarea name="" id="comment" cols="30" rows="10"></textarea>
        <div class="submit">
            <input type="submit" value="发布" id="sub">
        </div>
        <textarea name="" id="res" cols="30" rows="10"></textarea>
    </div>

二、CSS样式

因为主要是为了练习一下javascript的代码,html布局的样式信息怎么方便怎么来,样式炒鸡简单,就是让标签居中显示,样式如下:

image.png

加完样式信息后的布局如下图:

image.png

三、Javascript特效

1、获取所需标签对象:评论编辑区域标签对象、评论发布按钮标签对象、经敏感词过滤的评论显示区域标签对象;

let comment = document.getElementById("comment");
let sub = document.getElementById("sub");
let res = document.getElementById("res");

2、一般已经正式发布的网站是会有一个敏感词词库,这里过敏感就用两个“秃头”和“熬夜”作为简单的例子(ps:你熬夜秃头了吗,哈哈哈),过滤确定好了后,就可定义一个正则表达式,用于匹配评论中的敏感词,正则表达式(记得要使用全局模式,把评论里的敏感词全部匹配到)如下:

let reg = /秃头|熬夜/g

3、为发布评论按钮设置鼠标点击响应事件,当点击发布时,首先使用上一步的正则表达式匹配到敏感词,然后将匹配到的敏感词替换为“ ** ”,最后将过滤后的评论显示到评论展示区域。

sub.addEventListener("click", () => {
    let resTest = comment.value.replace(reg, "**");
    res.innerText = resTest;
})

至此,简单的敏感词过滤功能就完成啦,撒花★,°:.☆( ̄▽ ̄)/$:.°★

B站视频网址:www.bilibili.com/video/BV1Nf…