JS中的RegExp对象的6大方法[实例](一)


RegExp对象的方法:

1:text()方法

该方法是支出被查的字符串中是否存在,就是是否有匹配的。

#
#
<script language="JavaScript">
	var str="http://www.eitail.com";
	var rs=/[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?/;
	var resule=rs.test(str);
	if(resule){
		alert("ok");//有匹配就弹出"ok"。
	}else{
		alert("error");//没有匹配就弹出"error"。
	}
</script>
#
#


2:match()方法-->stringObj.match(rgExp)

用match()方法没有找到匹配,返回null如果找到匹配,返回一个数组,并且更新全局RegExp对象的属性以反映匹配结果。

match()方法返回的数组有三个属性:input,index和lastIndex。

如果没有设置全局标志(g),数组的0元素包含整个匹配,而第1到n元素包含了匹配中曾出现过的任一个子匹配,这相当于没有设置全局标志的exec()方法。如果设置了全局标志,元素0到n中包含所有的匹配。

实例1:

#
#
<script language="JavaScript">
	var r,re;
	var s="I am a good boy";
	re=/boy/i;
	r=s.match(re);
	alert(r);
</script>
#
#

弹出结果:boy

实例2:

#
#
<script language="JavaScript">
	var r,re;
	var s="I am a good boy, but not boys !";
	re=/boy/ig;
	r=s.match(re);
	alert(r);
</script>
#
#

弹出结果:boy,boy


3:exec()方法-->rgExp.exec(str)

该方法用正则表达式模式在字符串中运行查找,并返回包含查找结果的一个数组。rgExp.exec(str)=>正则.exec(字符串)。

exec与match的关联就是exec(g有没有都无影响)就等价于不含有g全局标志的match.即返回数组arr[0]为匹配的完整串。其余的为括号里捕获的字符串。

实例1:

#
#
<script type="text/javascript">
	<!--
	str = "abbb34eftab0modabbbbb6";
	var reg = /a(b)+(\d+)/ig;// then test: var reg = /a(b)+(\d+)/i
	var arr = reg.exec(str);
	for(var i = 0; i < arr.length; i++){
	    document.write(arr[i] + "---->"); //根据返回结果可知无论是否有g全局.返回的数组arr[0]为匹配的完整字串后面是括号里的捕获[abbb34,b,34]即与不含有g的match等价
	}
	//-->
</script>
#
#

运行结果:abbb34---->b---->34----> 112233

但如果有g对exec本身的影响是,当一个具有g的正则表达式调用exec()时,他将该对象的lastIndex设置到紧接这匹配子串的字符位置.当第二次调用exec时将从lastIndex所指示的字符位置开始检索.利用这个特点可以反复调用exec遍历所有匹配.等价于match具有g标志.

实例2:

#
#
<script type="text/javascript">
	<!--
	str = "abbb34eftab0modabbbbb6";
	var reg = /a(b)+(\d+)/g;// then test: var reg = /a(b)+(\d+)/i
	while((arr = reg.exec(str)) != null){
	    document.write(arr[0] + "---->"); 
	}
	document.write("<br/>")
	var arrmatch = str.match(reg);
	for(var i = 0; i < arrmatch.length; i++){
	    document.write(arrmatch[i] + "---->"); 
	}
	//-->
</script>
#
#

运行结果:

abbb34---->ab0---->abbbbb6---->

abbb34---->ab0---->abbbbb6----> 112233


相关文章:JS中的RegExp对象的6大方法[实例](二)

上一篇 下一篇