详解JavaScript RegExp对象

  


  

  

正则表达式描述了字符的模式对象。
  

  

当您检索某个文本时,可以使用一种模式来描述要检索的内容.RegExp就是这种模式。
  

  

简单的模式可以是一个单独的字符。
  

  

更复杂的模式包括了更多的字符,并可用于解析,格式检查,替换等等。
  

  

您可以规定字符串中的检索位置,以及要检索的字符类型,等等。

  

RegExp对象是原生JavaScript中表示正则表达式的对象。

  

创建对象的方法为:<代码> var RegExp=new RegExp(模式、属性);

  

参数模式指定正则表达式的规则或者表示正则表达式模式的字符串;

  

参数属性为可选参数,表示匹配模式的修饰符。包含3个参数:

  

1只;我:执行对大小写不敏感匹配。

        & lt;脚本文本=" text/javascript "比;   var txt=癏ello World !”   var reg=new RegExp(“你好”,“我”);   如果(reg.test (txt)) {   console.log (txt.match(注册);   }   & lt;/script>      

2只;旅客:执行全局匹配(查找所有匹配项而非找到第一个匹配项后停止),

        & lt;脚本文本=" text/javascript "比;   var txt='这只是一个测试。   var reg=new RegExp(‘是’,‘g’);//区分大小写   var reg01=new RegExp(‘是’,‘gi);//不区分大小写   如果(reg.test (txt)) {   console.log (txt.match (reg));//(“是”“是”)   console.log (txt.match (reg) . length);//2   }   & lt;/script>      

3只;m:执行多行匹配(若不设置该属性,^($)只与整个被搜索字符串的开始(结尾)位置开始匹配;若设置该属性,^($)还可以与被搜索字符串的“\ r”或“\ n”之后位置开始匹配)。

        & lt;脚本type=" text/javascript祝辞//以下代码不能够匹配字符串“一个”,尽管”一个“后面已经换行了,但“一个”并不是字符串行的结尾。   var txt1='这是一个苹果\ n ';   var reg1=/美元/;   console.log (txt1.match (reg1));//null//以下代码能够匹配到字符串“一个”   var txt2='这是一个苹果\ n ';   var reg2=/美元/米;   console.log (txt2.match (reg2));//(“一个”,指数:8,输入:“这是您# 8629;苹果”)//以下是多行匹配开头示例   var txt3='这是一个苹果\ n ';   var reg3=/^ \酸式焦磷酸钠;   console.log (txt3.match (reg3));//null      var txt4='这是一个苹果\ n ';   var reg4=/^ \酸式焦磷酸钠/m;///^ app/m   console.log (txt4.match (reg4));//(“应用程序”,指数:11日,输入:“这是您# 8629;苹果”)   & lt;/script>      

我、g、m三个修饰符可以相互组合同时使用。

  

以上米修饰符中的示例中var reg4=/^ \酸式焦磷酸钠的“\”是一个转义字符,如果使用构造函数创建正则表达式对象时,应将正则表达式中的“\”用“\ \”进行代替:

        & lt;脚本type=" text/javascript祝辞   var txt4='这是一个苹果\ n ';   var reg4=new RegExp(^ \ \酸式焦磷酸钠,“m”);   console.log (txt4.match (reg4));//(“应用程序”,指数:11日,输入:“这是您# 8629;苹果”)   & lt;/script>      

  

<强>全球

1.   

返回正则表达式是否具有“g”修饰符;

        & lt;脚本type=" text/javascript祝辞   var txt=罢庵皇且桓霾馐浴?   var reg=new RegExp(‘圣’,‘g’);   如果(reg.global) {   console.log (txt.match (reg));//(“圣”,“圣”)   }   & lt;/script>      

<强> 2. ignorecase

  

返回正则表达式是否具有“我”修饰符;

  

<强> 3.多行

  

返回正则表达式是否具有“m”修饰符;

  

<强> 4. lastindex

  

标记下一次匹配开始时所在字符串的位置;

        & lt;脚本type=" text/javascript祝辞   var txt='如果你喜欢代码,你应该每天代码。”;   var reg=new RegExp(‘你’,‘g’);   var=txt.match长度(reg) . length;   (var=0;我& lt;长度;我+ +){   reg.test (txt);   console.log (reg.lastIndex);   }   & lt;/script>      

<强>

5.来源   

返回正则表达式进行模式匹配的文本或表达式,返回的文本中不包括修饰符“我”,“g”,“m”,也不包括正则表达式直接量使用的定界符

详解JavaScript RegExp对象