JavaScript中的RegExp

一、 认识正则

     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)