RegExp对象


用正则虽多

但是对这个对象并不是很了解,所以做点笔记  记的是一些我不熟悉的东西  嘿嘿.............

 

例化RegExp对象

1.直接写        

    var reg = /\d+/g

 

2.new RegExp

    new RegExp("\\d+","g")

       (1) i,g,m放在第2个参数上

       (2) 斜杠要转义  所以是\\

 

第一种用法很常见了 我也喜欢直接这么用(主要是因为那些字符要转义 我不是很清楚)

第2中在某种字符串不确定的时候还是很有用的 比如一下的例子

	var str = '<div class="your sister" id="myid" name="myname" sister="yousister"></div>';
	function getAttr(attr,str){
		var reg = new RegExp(attr+"\\s*=\\s*(['\"]?)(.*?)\\1");
		return reg.exec(str)[2];
	}
	getAttr("id",str);
	getAttr("class",str);
	getAttr("name",str);
	getAttr("sister",str);

 


RegExp实例属性

global                     布尔值,表示是否标识了g.

ignoreCase           布尔值,表示是否标识了i.

multiline                布尔值,表示是否标识了m.

source                    字符串,表示创建RegExp对象实例时指定的表达式文本字符串.

lastIndex                整数,表示开始搜索下一个匹配项的字符位置,从0开始算  (ps只是设置了g ,然后执行exec或者test  才会从下一个开始算, 不然一直从0开始算)

 

例子

	var reg = /ab\d+/g;
	alert(reg.global);           //true
	alert(reg.ignoreCase);       //false
	alert(reg.multiline);        //false
	alert(reg.source);           //ab\d+


lastIndex的例子

	var reg = /\d+/;
	var str = "123asd456vbn789";
	alert(reg.exec(str));    //123
	alert(reg.lastIndex);    //0
	alert(reg.exec(str));    //123
	alert(reg.lastIndex);    //0
	alert(reg.exec(str));    //123  
	alert(reg.lastIndex);    //0

	var reg1 = /\d+/g;       //设置了g
	alert(reg1.lastIndex);   //0
	alert(reg1.exec(str));   //123
	alert(reg1.lastIndex);   //3 
	alert(reg1.exec(str));   //456
	alert(reg1.lastIndex);   //9
	alert(reg1.exec(str));   //789
	alert(reg1.lastIndex);   //15


 

RegExp构造函数属性

Input                  最近一次zuij匹配的字符串

lastMatch          最近一次的匹配项

lastParen          最近一次的匹配捕获组

leftContext         input中lastMath之前的文本  (是lastMatch    不是lastParen)

rightContext      input中lastMath之后的文本

$1-9                   表示这次匹配的捕获组  依次RegExp.$1,RegExp.$2,RegExp.$3,RegExp.$4,

 

	var reg = /<div id="(.*?)" name="(.*?)" class="(.*?)"/,
		str = '<div id="myid" name="myname" class="myclass" action="your sister">';
	reg.exec(str);	
	alert(RegExp.$1);    //myid
	alert(RegExp.$2);    //myname
	alert(RegExp.$3);    //myclass
	alert(RegExp.lastMatch);   //<div id="myid" name="myname" class="myclass"
	alert(RegExp.lastParen);   //myclass
	
	var reg1 = /\d+/g,
		str1 = '12nm34sdf56oiu78sx';
	reg1.exec(str1);
	alert(RegExp.leftContext);   //空的  因为12左边没有东西
	alert(RegExp.rightContext);  //nm34sdf56oiu78sx
	reg1.exec(str1);
	alert(RegExp.leftContext);   //12nm
	alert(RegExp.rightContext);  //sdf56oiu78sx
	//继续执行 同理了

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值