js RegExp对象学习(正则表达式对象)

replace方法和RegExp结合使用
  
  var str = "L.Rain"; 
  var regExpTest = '' ;
  regExpTest = str.replace(/[R|n]/g , "*"); 

  var regExp = new RegExp("[R|n]","gi") ;
  regExpTest = str.replace(regExp,'*') ;
  //上面两种方式的效果一样


   RegExp对象的构造函数可以带一个或两个参数, 第一个参数是描述需要进行匹配的模式字符串,如果有第二个参数,这个参数则指定了额外的处理指令。
  最基本的正则表达式就是普通的字符串 g

  var reCat = new RegExp("cat");    
  var reCat = /cat/;
  var reCat = new RegExp("cat","g"); 
  //第一和第二种 只拼配第一次的cat
  //第三种 则匹配所有的cat


  第二个参数表示要搜索字符串出现的全部的"cat",而不是找到第一个匹配后就停止。
如果还要模式不区分大小写,可以给第二个参数添加字符 i

   var reCat = new RegExp("cat","gi");
   var reCat = /cat/gi;


  测试:
   var sToMatch = "cat";
   var reCat = /cat/gi;
   alert( reCat.test(sToMatch) );


RegExp对象涉及的方法:

  RegExp.exec():访问模式的每一次出现
    var sToMatch = "a bat , a Cat , a fAt ,a baT , a faT cat";
    var reAt = /at/;
    var arrMatches = reAt.exec(sToMatch);
    alert(arrMatches.length);   // output  1

  RegExp.test():方法用于检测一个字符串是否匹配某个模式 常用于判断是否符合正则表达式 返回true 或 false
   var str = "ExpTest";
   var patt1 = new RegExp("ExpTest");
   var result = patt1.test(str);
   
   alert(result);//返回true 说明匹配到


  String.match():String 对象的 match()  方法
    var sToMatch = "a bat , a Cat , a fAt ,a baT , a faT cat";
    var reAt = /at/gi;
    var arrMatches = sToMatch.match(reAt);
    alert( arrMatches.length );   // output  6


  String.search():此方法与 indexOf()方法类似, 但是它使用的是一个RegExp对象,而并非一个字符串, 返回的是字符串中一个匹配的位置
(g)全局匹配在此方法不起作用。

  String.replace():可以用另外一个字符串(第二个参数) 来代替某一个字符串或者一个匹配的 模式字符串 (第一个参数)的所有匹配。
  String.split():参数可以为一个字符串也可以为 一个匹配的模式字符串 RegExp对象。

你可能感兴趣的:(RegExp)