用于模式匹配的RegExp方法

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>

 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值