Javascript中的RegExp对象
理解Javascript中RegExp对象
RegExp 即为JavaScript中正则表达式对象的名称。
在RegExp中可以使用的一些属性:
♦global — boolean,省略为g,表示全局选项是否已设置
♦ignoreCase — Boolean值,省略为i,表示忽略大小写选项是否已经设置
♦laseindex –整数,代表下次开始匹配的字符位置,在使用exec()和text()函数进行匹配时才会有效。
♦multiline — boolean值,省略为m,表示多行模式是否已经设置
♦source — 正则表达式的源字符串模式
laseindex在正则表达式匹配中的应用:
——————————————————那传说中的分割线————————————
var sToMatch = "bbq is short for barbecue";
var reB = /b/g;
reB.exec(sToMarch);
alert(reB.lastindex); //output "1"
reB.exec(sToMarch);
alert(reB.lastindex); //output "2"
reB.exec(sToMarch);
alert(reB.lastindex); //output "18"
reB.exec(sToMarch);
reB.lastindex = 0;
alert(reB.lastindex); //output "21"
——————————————————那传说中的分割线———————————–
RegExp对象的一些静态属性:
完整属性名 缩写名 描述
♦ input $_ 最后用于匹配的字符串[用于exec() 以及 test() ]
♦lastMatch $& 最后匹配的字符
♦lastParen $+ 最后匹配的分组
♦leftContext $` 在上次匹配的前面的字串
♦multiline $* 用于指定是否所有的表达式都使用多行模式的布尔值
♦rightContext $’ 在上次匹配之后的字串
——————————————————那传说中的分割线————————————
var sToMatch = "this has been a short,short summer";
var reShort = /(s)hort/g;
reShort.test(sToMatch);
alert(RegExp.input); //out:this has been a short,short summer
alert(RegExp.leftContext); //out:this has been a
alert(RegExp.rightContext); //out:,short summer
alert(RegExp.lastMatch); //out:short
alert(RegExp.lastParen); //out:s
alert(RegExp.$_); //out:this has been a short,short summer
alert(RegExp["$`"]); //out:this has been a
alert(RegExp["$'"]); //out:,short summer
alert(RegExp["$&"]); //out:short
alert(RegExp["$+"]); //out:s
——————————————————那传说中的分割线————————————
在如上代码中使用test()或者exec()会使RegExp对象的所有属性(除开multiline)的值重置.
multiline属性的使用:
•multiline属性在Oprea和IE中不被支持。
——————————————————那传说中的分割线————————————
var sToMatch = "First second\nthird fourth\nfifth sixth";
var reLastWordOnLine = /(\w+)$/g;
RegExp.multiline = true; //设置对象的多行模式开关为开
var arrWords = sToMatch.match(reLastWordOnLine );
//arrWords : second | fourth | sixth
——————————————————那传说中的分割线————————————