整体思路:
定义敏感词库,通过循环敏感词数组成员判断字符串中是否包含敏感词,如果存在敏感词,则将敏感词替换为等量的星号( * );
使用到的知识点:
forEach() Array对象方法---循环数组。
includes()String对象方法---判断字符串中是否包含指定的字符串(es6)。
replace() String对象方法---用于替换匹配的子字符串。
repeat() String对象方法---返回一个新字符串,表示将原字符串重复n
次 (es6)。
while()循环 。
参见 es5: https://wangdoc.com/javascript/ es6:https://wangdoc.com/es6/
代码如下:
<script>
//定义字符串
let str = '路飞踩到了狗屎';
function filter(str) {
//定义敏感词库 不便列举展示敏感词,可自行添加修改。
var banstr = ['屎','傻货'];
//forEach 循环数组
banstr.forEach(element => {
//循环判断字符串中是否包含敏感词
//此处while亦可用正则表达式替代
while (str.includes(element)) {
//将敏感词替换为与敏感词长度等量的星号
str = str.replace(element, `${'*'.repeat(element.length)}`);
}
});
console.log(str); //打印到控制台
}
filter(str);
</script>
效果如下:
敬请批评指正。