美文网首页
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