用来定义正则表达式的类型,

1. 通常情况下,我们可以直接用字面量形式来定义正则表达式,格式如下:

  var expression = /pattern/flags

  pattern为正则表达式

  flags为标志,表明正则表达式的行为

    g: 表示全局模式,被应用于所有字符串,并非发现一个就停止

    i: 表示不区分大小写

    m: 表示多行模式,会换行进行匹配

2.我们也可以用RegExp构造函数来定义正则表达式

  接收两个参数,一个是要匹配的字符串模式,第二个是标志

  例如: var pattern1 = / [bc]at /i;

      var pattern2 = new RegExp("[bc]at", "i")   //与pattern1等价

区别:字面量创建的正则表达式只会创建一个RegExp实例,而RegExp构造函数创建在每次迭代时都会创建新的

3.RegExp实例属性: lastIndex 开始搜索下一个匹配项的的字符位置,从0算起

4.RegExp 实例方法

(1)exec() 专门为捕获组而设计的,接收一个参数,为要应用模式的字符串,返回包含第一个匹配项的信息,返回的数组都是Array的实例

  包含两个额外的属性,index和input  index表示匹配项在字符串中的位置,input表示应用正则表达式的字符串

  例如:

    var text = "mom and dad and baby";

    var pattern = /mom( and dad ( and baby)?)? /gi;

    var matches = pattern.exec(text);

    match.index   // 0

    match.input // "mom and dad and baby"

    match[0] // "mom and dad and baby"

    match[1] // "and dad and baby"

    match[2] // "and baby"

   对于exec()方法而言,即使设置了全局标志g,它每次也只会返回一个匹配项,若没设置g ,在同一个字符串上多次调用,它只会返回第一个匹配项

    设置了全局标志,它会在字符串中继续查找新项

(2)text()方法 接收一个字符串参数,在模式与该参数匹配的情况下返回true ,否则返回false

  可以快速检验字符串是否与正则匹配

  可验证用户输入是否有效

04-30 21:11