day14 正则

一、<!-- 正则表达式  常用于表单验证 判断用户填写的内容是否正确 -->
<body>
    <script>
        // 正则表达式  可以使用 / /是声明一个正则对象
        // 正则对象定义方式
        // 第一种定义  常用
        // var regx=/^b$/  声明的就是一个正则对象 ^表示开头  $表示1结尾  只匹配b这一个单词
        // 第二种定义
        var regx1=new RegExp('^a$')//只匹配a
        // [] 表示其中一个元素
        var regx2=/^[asgbg]$/  //匹配其中一个
        // {} 表示个数
        var regx3=/^[abc]{2}$/  //匹配ab  bc ac aa bb  cc   abc三个元素任意两个组成的单词

        // g全局匹配(会全局搜索所有结果  没有全局找到第一个就不找了)  i表示不区分大小写
        var regx4=/^[ab]{2}$/gi  //匹配 aa ab ba bb aA  Aa  aB Ba
        // 使用第二种定义如果需要加上g或i关键词
        var regxObj=new RegExp('^a$','gi')

        // 修饰符
        // +表示1个到多个
        var regx5=/^[a]+$/  //匹配a  aa  aaa 匹配一个a或多个a

        // *表示0个或多个
        var regx6=/^[ab]*$/

        // ? 表示匹配0个到1个
        var regx7=/^a[ab]?$/  //a  aa  ab

        // 对应的正则对象的方法
        // test  是否符合对应的表达式 test() 里面的参数为string类型  返回结果为布尔类型
        console.log(regx7.test('a')); //true

        // exec 方法  找到符合的结果  返回数组  没有匹配返回null
        console.log(regx7.exec('ab')); //

        // 针对里面的[]  *  + ,等等没有办法直接解析的 需要加转义符 \

        //string类型支持正则的方法//split截取方法
        //replace替换方法支持正则//search搜索方法
        //match正则对象的exec方法很像返回也是一个数组里面的元素为匹配的结果(返回第一个找到的)
        var regx2 = / [abc]{2}/
        console.log( 'abca'.match(regx2));
        //正则对象的方法
        //test方法判断是否有匹配的有返回true没有返回false
        //exec方法返回一个数组数组里面为匹配的结果(返回第一个找到的)
        // 如果加g的话 从左往右找 找到对元素就不管了
        var regx3 = / [abc]{2}/g
        console.log( 'abca'.match(regx3));
        console.log( 'abca'.match(regx3));



    </script>  

二、<!-- 正则补充 -->
    <script>
        // . 表示任意字符 如果你想匹配需要转义  \. 匹配点
        var regx=/./
        var str=' '
        console.log(regx.test(str));

        // \s 表示空白 \S相反  表示非空
        var regx1 = /\s/
        var regx2 = /\S/
        console.log(regx1.test(str));
        console.log(regx2.test(str));

        // \d表示数字\D非数字
        var regx3 = /\d/
        var regx4 =/\D/
        console.log(regx3.test( ' 123' ));
        console.log(regx4.test( '123'));

        // \w表示数字字母下划线\w非数字字母下划线
        var regx5 = /\w/
        var regx6 =/\w/
        console.log(regx5.test( '_'));
        console.log(regx6.test( '_'));

        // () 这个里面没有大的意义 主要做代码的范围分割
        var regx7=/([a][b]){2}/  //匹配abab
        console.log(regx7.test('abab'));

        // 可以直接取出括号里面的值  向上就近
        console.log(RegExp.$1);//取出第一一个括号的匹配的内容
        console.log(RegExp.$1);//没有第二个括号的话  拿到内容为空

        // |或
        var regx8=/abc|bcd/  //匹配abc 或者是bcd

        // 如果加了?后面括号的内容不能获取了 RegExp.$获取
        var regx9=/\w{6}/  //6位以上 后面被忽略掉了
        regx9.test('1234')  //false

        // {} 表示个数 可以规定个数的范围 {1,2} 表示一个到两个 {1}表示一个 {1,} 表示一个到多个  {2,}表示两个到多个
        console.log(/^a{1,2}$/.test('111'));

        // /m是换行匹配  g全局匹配  i忽略大小写
posted @ 2022-04-07 20:13  凌晨四点钟  阅读(30)  评论(0)    收藏  举报