• 正则表达式


    正则表达式相关知识点总结

    1.正则表达式的语法

     <script>
            /*
             * 创建一个正则表达式检查一个字符串是否含有aaa
             * 
             * 量词
             * -通过量词可以设置一个内容出现的次数
             * -量词只对它前边的一个内容起作用
             * -{n}正好出现n次
             * -{m,n}出现m-n次
             * -{m,}m次以上
             * - + 至少一个,相当于{1,}
             * - * 0个或多个,相当于{0,}
             * - ? 0或1个,相当于{0,1}
             */
            var reg = /a{3}/;
            //ababab
            console.log(reg.test("aaabc"));//true
    
            reg = /ab{3}/
            console.log(reg.test("abbb"));//true,只对b起作用
    
            reg = /(ab){3}/
            console.log(reg.test("ababab"));//true
    
            reg = /ab{3}c/;
            console.log(reg.test("abbbc"));//true,a和c之间刚好有3个b
    
            reg = /b{3}///是否有连续出现的三个b
            console.log(reg.test("bb"));//false
    
            reg = /ab{1,3}c/
            console.log(reg.test("abbc"));//true
    
            reg = /ab+c/
            console.log(reg.test("abbbbc"));//true
    
            /*
             * 检查一个字符串中是否以a开头
             *  ^ 表示开头
             * $ 结尾
             * 
             * 如果在正则表达式中同时使用^和$ ,则要求字符串中必须完全符合正则表达式
             * reg=/^a|a$/;以a开头或者结尾
             */
            reg = /^a/
            console.log(reg.test("abcabc"));//true
    
            reg = /^a$/; //a开头又结尾
            console.log(reg.test("a"));///true
    
        </script>
        
     <script>
            /*
             * 创建一个正则表达式,用来检查一个字符串是否是一个合法手机号
             *手机号规则
             *  1 3 567890123(11位)
             * 
             * 1. 以1开头
             * 2. 第二位3-9任意数字
             * 3. 第三位以后任意数字9个
             * ^1 [3-9] {0-9}{9}$
             */
            var phoneStr = "13278831206";
            var phoneReg = /^1[3-9][0-9]{9}$/;
            console.log(phoneReg.test(phoneStr));//true
        </script>
    
    
    <body>
        <script>
            /*
             * 检查一个字符串中是否含有.
             * 
             * .表示任意字符
             * 在正则表达式中使用\作为转义字符
             * \.来表示
             * \\ 表示\
             * 
             * 注意,使用构造函数,由于它的参数是一个字符串,而\是字符串中的转义字符,
             * 如果使用\则需要使用\\来代替
             * 
             * 
             * \w
             * -任意字母 任意数字 _  [A-z0-9_]
             * \W
             * -除了字母 数字 下划线 [^A-z0-9]
             * \s
             * -空格
             * \S
             * - 除了空格
             * \b
             * -单词边界
             * \B
             * -除了单词边界
             * \d
             * -  任意数字[0-9]  
             * \D
             * - 除了数字[^0-9]
             */
            /*
             * 创建一个正则表达式检查一个字符串中是否含有单词child
             * 
             * 
             */
            var reg = /./;
            reg = /\\/
            reg = new RegExp("\\.")
            reg = /\bchild\b/;
            console.log(reg.test("hello children"));//false
            console.log(reg.test("bbbbbb"));//false
            console.log(reg.test("b"));//true
            console.log(reg.test("b.\\"));
            console.log("b.\\");//b.\
    
            //去掉字符串中的空格
            //去掉字符串就是使用""来替换空格
            var str = "        he    llo      "
            //去除开头的空格
            //str = str.replace(/^\s*/g, "");
            //去掉结尾的空格
            str = str.replace(/\s*$/, "");
            //匹配开头和结尾的空格 /^\s*|s*$/g 
            str = str.replace(/^\s*|s*$/g, "");//he   llo
            console.log(str);
        </script>
    </body>
    

    2.常见正则表达式

        <script>
            //\[]
            // >  &gt;
            // // \  转义
            // var str = ".[/b]"
            // var reg = /\.\[\/b]/;
            // console.log(reg.test(str));
    
            // // m 换行
            // var pattern = /^\d+/gm;
            // var str = "1,baidu98\n2,google99\n3,bing100";
            // console.log(str);
            // console.log(str.replace(pattern, "#"));
    
    
    
    
    
    
            // // 邮政编码(共6位数字, 第一位不能为0)
            // var reg = /^[1-9]\d{5}$/
    
            // // 电子邮件(xxxx@xxx(.xxx) +)
    
            // // var reg=/\w+@\w+\.\w+/ig
            // var str1 = "zh.an.san@1000phone.com"
            // var str2 = "zhansan@1000phone.com"
            // var str3 = "zh.an@1000phone.com.cn"
            // var reg=/^\w+(\.\w+)*@\w+(\.\w+)+$/ig;
    
            // //手机号(13或14或15或18开头的11位数字)
    
            // // var reg=/^1[3458]\d{9}$/
            // var  reg=/^1[3-9]\d{9}$/g
    
            // // 用户名(只能使用数字字母下划线, 且数字不能开头, 长度在6-15位)
    
            // var reg=/^[a-z_]\w{5,14}$/i
    
            // //身份证
            // var reg=/^[1-9]\d{16}[\d|x]$/i
    
            // console.log(reg.test('43042420011212123X'));
    
            // //  120
    
    
            // var reg=/(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$)/
    
    
    
            // var reg=/(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$)/
    
    
            // var str = "2017-11-11";
            // var reg=/^\d{4}-\d{2}-\d{2}$/ // 99
    
    
    
    
            //图片文件格式
    
            var  str=/\.(jpg|gif|png|jpeg|webp)$/
    
        </script>
    </body>
    
    
  • 相关阅读:
    XSS--PHPwind5.3复现
    网络基础一
    不老的神器--namp,awvs
    苏醒的巨人----CSRF
    XSS--编码绕过,qcms,鲶鱼cms
    XSS----payload,绕过,xss小游戏记录
    sql注入--高权限,load_file读写文件
    提权基础-----mysql-udf提权
    weblogic AND jboss 反序列化漏洞
    简单的压力测试工具 siege
  • 原文地址:https://www.cnblogs.com/buxiu888/p/16369360.html
Copyright © 2020-2023  润新知