正则表达式笔记之四

在JavaScript中的每个正则表达式都是一个对象。这些对象有下面的一些属性。

 

1, 实例属性:RegExp的实例有一些开发人员可以使用的属性。

      global - Boolean值,表示g(全局选项)是否设置

      ignoreCase - Boolean值,表示i(忽略大小写选项)是否设置

      lastIndex - 整数,代表下次匹配将会从哪个字符位置开始(只有当使用exec()或test()函数才会填入,否则为0

      multiline - Boolean值,表示m(多行模式选项)是否设置

      source - 正则表达式的源字符串形式。例如表达式/[ba]*/的source将返回"[ba]*"

 

      在这些属性中,真正有用的是lastIndex,它可以告诉你正则表达式在某个字符串中停止之前,查找乐多元:

      var sToMatch = "bbq is short for barbecue";

      var regB = /b/g;

      regB.exec(sToMatch);

      alert(regB.lastIndex);              // output "1";

      regB.exec(sToMatch);

      alert(regB.lastIndex);              // output "2";

      regB.exec(sToMatch);

      alert(regB.lastIndex);              // output "18";

      regB.exec(sToMatch);

      alert(regB.lastIndex);              // output "21";

      如果想从头开始匹配,可以将lastIndex设为0.

 

2, 静态属性: 静态属性对所有的正则表达式都有效。这些属性都有两个名字: 一个复杂名字和一个以$开头的简短名字,如下:

       长名                          短名                            描述

       input                        $_                         最后用于匹配的字符串(传递给exec()或test()的字符串)

       lastMatch                 $&                         最后匹配的字符

       lastParen                 $+                         最后匹配的分组

       leftContext               $`                         在上次匹配的前面的子串

       multiline                   $*                          用于指定是否所有的表达式都使用多行模式的选项

       rightContext             $'                          在上次匹配之后的子串

       这些属性可以告诉你,关于刚使用的exec()或test()完成的匹配的一些特定信息。如:

       var sToMatch = "this has been a short, short summer";

       var regShort = /(s)hort)/g;

       regShort.test(sToMatch);

       alert(RegExp.input);                // output "this has been a short, short summer"

       alert(RegExp.leftContext);      // output "this has been a "

       alert(RegExp.rightContext);    // output ", short summer"

       alert(RegExp.lastMatch);         // output "short";

       alert(RegExp.lastParen);         // output "s"

       记住,每次执行exec()或test()时,所有的属性(除multiline)都会被重新设置。

      

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值