用于模式匹配的RegExp方法

来源:互联网 发布:fs2you for mac 编辑:程序博客网 时间:2024/05/29 03:35

RegExp对象定义了两个用于模式匹配的方法,它们是exec()和test()。

exec()它对一个制定的字符串执行一个正则表达式匹配,如果没有找到任一个匹配,它将返回NULL,否则返回一个数组,这个数组的第一个元素包含的是与争着表达式相匹配的字符串,余下的所有元素包含的是匹配的各个分组。而且,正则表达式对象的index属性还包含了匹配发生的字符的位置,属性input引用的则是被检索的字符串。

<html><head><title>Example-10.3 从身份证号码中获取出生年月日</title></head><body><script type="text/JavaScript"><!--//从身份证号码中获取出生年月日str="420105198203091614"; var re=//d{6}([12]/d{3})([01]/d)([0123]/d)/d{4}/;var id=re.exec(str); //exec用字符串参数去匹配模式,得到一个数组,第一个元素是匹配的表达式本身//第二个元素开始是正则表达式中对应的括号(分组)中的匹配项//即id[1]匹配([12]/d{3})//id[2]匹配([01]/d)//id[3]匹配([0123]/d)document.write("ID为:"+id[0]+"<br/>"); document.write("出生年月为日为:"+id[1]+"-"+id[2]+"-"+id[3]); --></script></body></html>
test()
<html><head><title>Example-10.4 使用test()方法遍历字符串</title></head><body><script type="text/JavaScript"><!--var str1 = "JavaScript is not Java";var str2 = "JavaScript is easy and JavaScript is fun. I love JavaScript!";var exp = /[Jj]ava(Script)?/g;//匹配Java、java、JavaScript、javaScript的正则表达式var i = 0;var lastIndex = 0;while(exp.test(str1))//用while循环去遍历匹配str1,一共可以找到两个匹配项,一个是JavaScript,一个是Java{i++;lastIndex = exp.lastIndex; //记下最近匹配到的lastIndex}//最后循环结束时,exp.lastIndex会自动清零document.write(i + " matchs, last match index:" + lastIndex + "<br/>");i = 0;while(exp.test(str2)){i++;lastIndex = exp.lastIndex;  //记下最近匹配到的lastIndex}document.write(i + " matchs, last match index:" + lastIndex + "<br/>");//下面这一句不是必要的,因为循环结束时会自动清零exp.lastIndex = 0;--></script></body></html>
 
	
				
		
原创粉丝点击