• 正则表达式每个字符的学习


    regular:规则;expression:表达式;
    RegExp: regular expression正则表达式,是按照特定的语法规则编写的字符串;用来进行字符串的匹配检查。
    使用场景:表单操作是,用来验证用户输入是否符合指定规则。
    var reg = // 字面量创建正则验证方式,隐式定义
    var reg1 = new RegExp()//实例化构造函数方法创建正则验证。显示定义。

    test和exec

        ```
         //定义正则表达式  reg里面存的是对象
        let str = "我们都在学前端"
        let reg = /前端/ //检测
        //检测是否匹配 text,返回值true/false
        console.log(reg.test(str));//被检测,,false
    
        // exec()方法在一个指定字符串中执行一个搜索匹配
        //返回值是数组,找不到否则返回null
        //检索exec()
        console.log(reg.exec(str));
        ```
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    定义正则表达式

    ^:匹配字符串的起始位置

       	  var regex1 = /^abc/
          //test():是一个正则类型的方法,检测字符串是否满足正则的要求。
          //参数:待检测的字符串。
          console.log(regex1.test("abcoo"));//true
    
          //$:匹配字符串的结束位置。
          var regex2 = /abc$/
          console.log(regex2.test("jisindabc"));//true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    $:匹配字符串的结束位置。

            var regex2 = /abc$/
            console.log(regex2.test("jisindabc"));//true
    
    
            var regex3 = /^abc$///abc开头,abc结尾的
            console.log(regex3.test("abcvehivhevheihabc"));//false
            console.log(regex3.test("abc"));//true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    \b匹配单词边界

            var regex4 = /is\b/
            console.log(regex4.test("thre gexpis"));//true
            console.log(regex4.test("this gexpre"));//true
    
    • 1
    • 2
    • 3

    \d:匹配任意数字

            var regex5 = /\d/
            console.log(regex5.test("23号saww8"));//true
            console.log(regex5.test("erhefhofhoh"));//false
    
    • 1
    • 2
    • 3

    \w:匹配数字字母下划线(字母不区分大小写)

            var regex6 = /\w/
            console.log(regex6.test("_"));//true
            console.log(regex6.test("3"));//true
            console.log(regex6.test("v"));//true
    
    • 1
    • 2
    • 3
    • 4

    \s:匹配空格

            var regex7 = /\s/
            console.log(regex7.test("a b"));//true
            console.log(regex7.test("ab"));//false
    
    • 1
    • 2
    • 3

    . :匹配除换行符外任意字符

            var regex8 = /./
            console.log(regex8.test("eheuih1232323343"));//true
    
    • 1
    • 2

    []:匹配范围

            // [abc]:匹配[]内任一字符
            // []:匹配范围
            // [0-9] [a-z] [A-Z]
            var regex9 = /[0-9a-zA-Z]/
            console.log(regex9.test("123934823"));//true
            console.log(regex9.test("asudhfihwif"));//true
            console.log(regex9.test("VUUCYKULKJ"));//true
            console.log(regex9.test("_$dsoe4343"));//true
            console.log(regex9.test("_$&*%^$"));//false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    :匹配前面的字符0或1次,无上限

    +:匹配前面的字符>= 1次,无上限

    *:匹配前面的字符>=0次,无上限

    {n}:匹配前面的字符n次,无上限

    {n,} :匹配前面的字符>= n次,无上限

    {n,m} :匹配前面的字符最少n次,最多m次;(n
            var regex10 = /^\d{3}$///\d:任意数字  {3}个数,,匹配任意数字个数只有三个
            console.log(regex10.test("324"));//true
            console.log(regex10.test("32456"));//false
            console.log(regex10.test("abd"));//false
            console.log(regex10.test("34hh"));//false
            console.log(regex10.test("34hccueci"));//false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
            var regex = /^\d{3,}$///匹配任意数字个数最少三个,最大个数无上限
            var regex11 = /^\d{3,6}$///匹配任意数字个数3~6个,包含3和6
            console.log(regex11.test("34"));//false
            console.log(regex11.test("327677"));//true
    
    • 1
    • 2
    • 3
    • 4

    |:或者

            var regex12 = /^a(b|c)d$///从a开始,中间字符可以说b或者c,然后必须以d结尾
            console.log(regex12.test("ccd"));//false
            console.log(regex12.test("acd"));//true
            console.log(regex12.test("abd"));//true
            console.log(regex12.test("abcd"));//false
            console.log(regex12.test("abcfd"));//false
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    [\u4e00-\u9fa5]:匹配任意中文字符

    [\u4e00-\u9fa5]
    
    • 1

    修饰符

    g:全局检索,不加的话智慧检索第一次出现的
    i:不区分大小写。ignore(忽略)

    replace替换

            var str1 = "hello regExp"
            console.log(str1.replace(/e/g, "9"));//把所有小写的e替换成9
    
    • 1
    • 2

    弱密码:只有数字6-8位/^\d{6,8} $ /
    中密码:包含数字字母下划线6-8位/^ \ w{6,8} $ /
    强类型:大写字母开头,之后包含数字字母下划线6-8位 /^ [A-Z]\w{5,7} $ /

    		var password = prompt("请输入密码")
            var numreg = /^\d{6,8}$/
            var letterreg = /^\w{6,8}$/
            var strongreg = /^[A-Z]\w{5,7}$/
    
            if (numreg.test(password)) {
                console.log("弱密码,请加强");
            } else if (letterreg.test(password)) {
                console.log("中密码,请再加强");
            } else if (strongreg.test(password)) {
                console.log("强密码,可以了");
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

  • 相关阅读:
    贪心算法刷题笔记
    【C++】使用std::vector()函数实现矩阵的加、减、点乘、点除等运算
    深潮财经解读USDD:穿过脱钩幻觉,寻找真实的稳定币
    Mysql数据库常用表结构操作语句
    Android13.0 修改屏幕显示方向
    Web基础和HTTP协议
    【FFH】啃论文俱乐部---JSON压缩算法解读
    WPF 控件专题 GridSplitter详解
    LNK2001 __GSHandlerCheck【error】
    VMware16虚拟机:安装Windows10系统---超详细教程
  • 原文地址:https://blog.csdn.net/weixin_68658847/article/details/127612336