美文网首页
JavaScript中的RegExp

JavaScript中的RegExp

作者: 北末_染 | 来源:发表于2018-07-15 11:51 被阅读0次
    一、 认识正则

         1、 什么是正则
               正则就是一个事物的规则。什么是正则表达式,就是描述事物规则的式子。
         2、 正则能帮我们干什么?
               1)做表单验证
               2)制作QQ表情
               3)制作小偷程序
                     正则就是做字符串的查找、匹配、分割、替换。是字符串方法的升级版。
         3 、正则难学吗?
               这是一个邮箱的正则表达式 \w+@\w+(.com|.cn|.org|.net){1,3}
               对不懂正则规则的人,正则就是一堆乱七八糟的字符串就,正则像医生的字,道士的符,就是天书。只要学习这个规则,其实正则对我们来说就非常简单了。正则非常好学。
          4 如何学习正则
             学好正则只需要学两个东西
                1) 正则表达式:就是描述事物规则的式子
                2) 正则函数:没有正则函数,正则表达式就是一堆乱七八糟的字符串,正则表达式要起作用,必须和正则函数一起使用。

    二 、正则的基本语法

           1 声明一个正则对象
                 ①用正则构造函数
                         var patt = new RegExp(‘正则表达式’,’修饰符’);
                 ②使用正则字面量的方式
                         var patt = /正则表达式(描述事物规则的字符串)/修饰符;
           2 正则表达式
              正则表达式分四块内容,只要学好这四块,你就可描述任务事物的规则了。
    如我们可以定义一个电话号码的规则表达式,这样就可以检查一个字符串是否是电话号码了。
                  ① 定界符 ,正则中的定界符就是定义正则表达式边界的。符号是 / /,作用就是告诉程序,定界符内的是正则表达式,要按照正则的语法规则进行解析。
                   ② 原子,自然界中的原子就是组成物质的最小单位。正则中的原子是组成正则表达式的最小单位。原子分三种
                (1) 普通原子
                (2) 转义符号、特殊符号,常见的转义符号有\n 换行 \r回车 \t 水平制表符 /输出定界符 \”输出双引号。。。。。。
                (3) 通配符

    \d  表示任意一位数字0-9                       \D任意一位非数字 非0-9 
    \w  表示任意一位数字、字母下划线               \W任意一位非数字字母下划线
    \s  表示任意一位空白字符 如空格                \S任意一位非空白字符
    \b  表示一个单词的边界 空格                    \B表示非单词边界 非空格
    

                 ③ 元字符
    元字符是修饰原子的,不能单独单独存在

        (1)[]  从多个原子中选一个
          (2)  ^  如果是出现在[]中,表示取反的意思,一定不能有
          (3)  ^  如果出现在正则表达式开头,表示以xxx开头的意思
          (4)  $  如果出现在正则表达式结尾,表示以xxx结尾的意思
          /^ a $/  字符串要匹配此表达式,必须满足三个条件
                 1 字符串以a开头
                 2 字符串以a结尾
                 3 字符串只能含一个a
          /^ a+$/  字符串要匹配此表达式,必须满足三个条件
                 1 字符串以a开头
                 2 字符串以a结尾
                 3 字符串可以含一个或多个a
         (5)+  表示匹配前面的原子一次或多次,大于0次
         (6)?  表示匹配前面的原子0次或1次
         (7)*  表示匹配前面的原子0次1次或多次,任意次
         (8){m} 匹配前面的原子m次
         (9){m,} 前面的原子最少出现m次
         (10){m,n} 前面的原子最少出现m次,最多出现n次
          (11)  | 从多分支中选一个 abc|opq|xyz
          (12)  .  表示除了换行符以外的任意符号
         (13) .*  匹配任意字符(除换行符)任意多次,这种匹配是贪婪匹配,如果有好几部分满足,取最长符合要求的子串
         (14) .*?  不贪婪的匹配任意符号任意多次
         (15) ()叫做模式单元
            他的几个作用
             1 把()中的内容作为整体处理 ab|c  a(b|c)
             2 ()中的内容会在内存中单独存放一份,方便使用
             3通过正则的匹配函数,返回一个数组,数组中下标为0的元素中放的是满足正则规则的子串,下标为1的元素中放的是,第一个()中匹配的内容, 下标为1的元素中放的是,第一个()中匹配的内容,依次类推。
             4如果不想匹配括号中的内容 使用(?:) 三元运算符
     ④ 修饰符
        i    忽略大小写
        m   把字符串作为多行对待
        g    全局匹配
    

                 3 正则函数

    分两大类,一类是字符串的正则方法,一类是正则对象的方法
          一 字符串的正则方法
             string.match()
             string.search()
             string.replace()
             string.split()
          二 正则对象的方法
             patt.test()
             patt.exec()
             patt.complie()

    相关文章

      网友评论

          本文标题:JavaScript中的RegExp

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