需求
有时,我们需要对用户输入的信息进行屏蔽,如藏词过滤,关键字替换等,这时我们可以在前端用JS代码实现这一需求,效果如下
思路:获取到用户输入的内容,和藏词数据库匹配,匹配到的进行替换即可,关键在于匹配关键字的算法上,JS代码如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js小游戏</title>
<script type="text/javascript">
function f(){
var p = document.getElementById("i");
var pv = p.value;
// 如果没有找到返回-1
var index = pv.indexOf("dog");
var count=0;
while(index>-1){
count++;
pv=pv.replace("dog","*");
index = pv.indexOf("dog",index+1);
}
// alert(count);
p.value=pv;
}
</script>
</head>
<body>
输入评论:<input type="text" id="i"/>
<input type="button" value="发布" onclick="f();"/>
</body>
</html>
核心匹配算法
while(index>-1){
pv=pv.replace("dog", "*");
index = pv.indexOf("dog", index+1); //替换后 找下一个位置
}