用js过滤掉 用户输入到文本框里面的脏话,求代码

JavaScript013

用js过滤掉 用户输入到文本框里面的脏话,求代码,第1张

最笨的方法是:

var str = 'zz112kdd'//输入的内容

    var arr = {'1':'1', '2':'2', '3':'3'}//要过滤掉的字符,用对象方便查找,如果是数组的话就要遍历

    var result=''//过滤后字符串

    for (var i = 1, length = str.length i < length i++) {

        var s = str.substring(i - 1, i)//截取字符

        var s1 = arr[s]//判断这个字符是否在敏感词对象里,匹配不到就返回undefined

        if (s1 == undefined) result += s//不是敏感词就保留下来

    }

估计正则表达式也可以实现,但稍微有点麻烦。

正则表达式和js配合可以完成3件事。

1. 查找一个固定的敏感词出现的位置:

以往的方法: str.indexOf()

var i=str.indexOf("敏感词",starti);

在str中,从starti位置开始,查找下一个“敏感词”的位置;

省略第二个参数starti,默认从0位置开始查找;

返回值: 如果找到,返回敏感词第一个字的位置;

如果找不到,返回-1;

问题: 只能查找一种固定的敏感词。

2. 模糊查找符合正则表达式要求的敏感词:

var i=str.search(/正则/)

问题1: 正则默认都是区分大小写的

解决: 在第二个/后加后缀i, ignore

问题2: 只能返回位置i,无法返回敏感词的内容。

3. 查询敏感词的内容,2种情况:

第一种、只查看第一个敏感词的内容和位置:

问题: 正则表达式默认只找到第一个就退出;

解决: 在第二个/后加后缀g, global(全部)

第二种、 查找所有敏感词的内容:

问题: 只能获得内容,无法获得位置;

4. 查找每个敏感词的内容和位置: reg.exec();

现模糊查询及带下拉菜单

<div><input type="text"></div>

<div class="daohang">

<div class="yiji">一级导航</div>

<ul class="erji">

<li>二级导航1</li>

<li>二级导航2</li>

</ul>

<div class="yiji">一级导航</div>

<ul class="erji">

<li>二级导航3</li>

<li>二级导航4</li>

</ul>

</div>。

实现文案显示,按效果显示。

实现查询,实现查询敏感词过滤,实现查询后列表变化。

实现倒序,实现正序,下拉列表排序效果都实现。

.按钮背景一致,按钮样式。

实现添加球员页面,添加球员页面样式,添加球员功能,添加球员必填项判断,添加完球员后能显示在表格内,已存在球员判重。

表格样式跟上图样式一致。