美文网首页
JavaScript 检测输入内容敏感词【子串】在字符串对象中出

JavaScript 检测输入内容敏感词【子串】在字符串对象中出

作者: 江边有颗桃 | 来源:发表于2019-04-04 18:48 被阅读0次

这道题我需要注意什么?

1.区分字符串数组的内置对象用法和字符串对象的用法: 典型 indexOf()
2.字符串对象infexOf的用法 尤其是=-1的时候的用法
3.如何输入不用循环弹出的对话框——把input=prompt("输入内容 ")放到for/while 循环的外面
4.弄清楚if条件判断时, == 和!= 分别对执行条件造成的影响,不要弄混=和==
5.注意需要声明哪些变量,尤其是最后需要打印的时候。
6.注意最终的内容是什么时候输出,是在循环条件触发时输出,还是整个循环结束了输出
7.注意“如果循循环结束后也没有触发任何执行条件,还要记得“没有发现敏感字”这一项,也要用if else 进行判断,并且这个“没有发现敏感字” 的情况和“敏感词出现的位置是xx是平行的情况
,
8.可以使用函数封装,也就是说不仅是只检测这一个字,还可以检测其他很多多字
9.注意注意字符串中某个位置的字符用str.charAt(i),也可以用str[i]“方括号加字符索引”来访问字符串中特定的字符,但是IE7及更早的浏览器会返回undefined.
10.注意明知道是字符串,但是用函数参数代替了以后就不需要加上引号了

题目要求:对用户输入内容的输入框进行排查,看有没有敏感字“草”字。


图片.png

第一步:弹出输入框,让用户输入他想搜索的内容

第二步:获取到用户输入的内容,对内容进行判断,如果输入的内容中含有敏感字“草”,那么要将敏感字出现的位置输出在页面中,并且获取到敏感字“草”第一次出现的位置,同时输出在页面中;

Tips:

如果输入的内容没有敏感字,页面中会显示什么呢?

去判断有没有敏感字,我们要用到循环

方法一:直接声明变量使用for循环

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>搜索内容是否有敏感字"草"</title>
</head>
<body>
<script>
  //补充代码
  var input=prompt("请输入想搜索的内容");
    for(var i=0;i<input.length;i++){

        if(input[i]!="草"){// 注意啦!这里是不等于!=草! 是不等于! 当不等于草的时候,从这个地方结束循环,进入下一次循环
//当他等于”草“的时候,继续往下走!,走到document,顺利输出
// 这里的input[i]表示input这个字符串中第i位的子字符串
        continue;
        }
        document.write("敏感词‘草’字在"+i+"位置被发现"+"<br>");
    }
//注意:不要忘记没有“草”的情况! 当上面的循环已经走完,那么接着往下走,如果没有出现“草”怎么办,打印出“没有发现敏感字。
    if(input.indexOf("草")==-1){// 当这里的条件等于-1时。说明这个字符串没有出现
      document.write("没有发现敏感字");
      } else{
    document.write("敏感词‘草’字首次出现的位置是"+input.indexOf("草"));
  }
</script>
</body>
</html>

方法二:使用函数封装

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>搜索内容是否有敏感字"草"</title>
</head>
<body>
<script>
  //补充代码
    function delString(str,schar) {
        for (var i = 0; i < str.length; i++) {
            if(str.charAt(i)==schar){
             document.write("敏感字‘草’在" + i + "位置被发现" + "<br />");
            }
        }


        if (str.indexOf(schar)==-1) {
            document.write("没有敏感字");
        }else{document.write("敏感字‘草’在" + str.indexOf(schar) + "位置首次被发现");
        }
   
    }

//以上这些都是封装的函数,真正的需要呈现需要输入的条件在下面这里
    var pro = prompt("请输入搜索内容");
    delString(pro,"草");
</script>
</body>
</html>

方法三:这个和方法一唯一的不同就是把a=inpit[i]声明了一下【注意赋值=前后的位置关系】,注意出现的位置一定是在i已经出现以后。

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>搜索内容是否有敏感字"草"</title>
</head>
<body>
<script>
  //补充代码
  var input=prompt("请输入想搜索的内容");
  var a;
    for(var i=0;i<input.length;i++){
      a=input[i];
        if(a=="草"){
        document.write("敏感词‘草’字在"+i+"位置被发现"+"<br>");
        }
    }
    if(input.indexOf("草")==-1){
      document.write("没有发现敏感字")}
      else{
    document.write("敏感词‘草’字首次出现的位置是"+input.indexOf("草"));
  }
</script>
</body>
</html>


.

相关文章

网友评论

      本文标题:JavaScript 检测输入内容敏感词【子串】在字符串对象中出

      本文链接:https://www.haomeiwen.com/subject/zmndpqtx.html