正则表达式概述

  1. 表达式概念
  1. 一种字符串检索模式;
  2. 表现为字符串形式的object对象;
  3. 可进行文本搜索和替换。在前端页面中一般用于表单验证;
  4. 语法:正则字面量表达方式:/正则表达式主体/修饰符(可选);
var reg = /abc/i;
  1. 实际开发中正则表达式会配合字符串的search和replace方法来使用;
  1. search():用于检索与正则表达式相匹配的子字符串,并返回字符串的起始位置;
  2. match():用于在原字符串中匹配第一个指定字符串的信息,例如(["b", index: 8, input: "loadfsdfbfasdfa"]),如果没有则返回null
  1. 有g修饰符时,正则返回所有满足条件的字符串的集合;
  1. replace:不修改原有字符串;
  1. 修饰符
  1. 常见的修饰符有三种:i、g、m;
  1. i:忽略大小写;
  2. g:全局;
  3. m:换行匹配,对正则中的^$产生影响;
  1. 检索模式([]表示包含其中一个的值,{}代表一个词组,):
  1. 表达式模式:[abc]、[0-9]、[m|n],每个内容都代表一类值,而不是字面的意思;
  1. [abc]:包含a或者b或者c,[a][b][c]:包含abc;
  2. [0-9]:在指定字符串中检索,查找任何满足【0-9之间】规则的字符或者字符串,该模式对字母也适用,注意结束位置要大于开始位置;
  3. (m|n):任何满足以“|”分割的选项之一,注意要用小括号括起来;
  1. 元字符模式(具有特殊含义的字符称为元字符);
  1. \d:数字,等同于[0-9];
  2. \s:表示空格;
  3. \b:表示边界\0,或以空格和换行隔开的;
  1. 量词模式(检索的字符或字符串出现的次数,仅对前面的一个字符有作用);
  1. n+:一个或者多个;
  2. n*:包含0个或者多个n(对空格也会起作用,贪婪模式);
  3. n?:要么0次,要么1次;
  4. .:表示任意字符;
  1. RegExp对象:
var reg = new RegExp(正则表达式的内容,修饰符);//参数均采用字符串的形式;
  1. 两个参数均为字符串类型;
  2. 提供的方法;
    1. test():本方法判断是否有满足正则条件的字符串,有就返回true,没有就返回false;
    2. exec():查找原字符第一个满足正则条件的下标和内容,查找失败则返回null,当RefExp是全局模式(g)时,当 exec() 找到了与表达式相匹配的文本时,在匹配后,它将把 RegExpObject 的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置。也就是说,我们可以通过反复调用 exec() 方法来遍历字符串中的所有匹配文本。当 exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0;
    3. var str = 'loaB11aadbfsdfbfabsdbfa';
      var reg = new RegExp('ab','gi')
      var res = reg.exec(str)
      console.log(reg,str.match(reg))///ab/gi ["aB", "ab"]
      console.log(reg.test(str))//true
      console.log(res)//["aB", index: 2, input: "loaB11aadbfsdfbfabsdbfa"]
      res = reg.exec(str)
      console.log(res)//["ab", index: 16, input: "loaB11aadbfsdfbfabsdbfa"]

       

  1. 初末尾字符:
  1. ^:初位字符
  2. $:末尾字符
  1. 重复类:
  1. 用{}来匹配字符连续出现的次数;
  2. {n}恰好n次,{n,}至少出现n次,{n,m}至少n次,至多m次;
  1. 贪婪模式和懒惰模式
  1. 贪婪模式(少用):只要符合正则要求的就一直往下匹配(n*);
  2. 懒惰模式:一旦匹配到符合正则要求的内容,就立刻立刻结束的行为模式(n?);
  1. 脱字符
  1. 仅当出现在中括号首位时,^可以表示“不是”的意思 ;
  1. 12个常用的js正则表达式
  1. 补充中……