1

使用RegExp对象的exec()方法:

直接调用即可。如果匹配到字符串返回一个数组;如果没有匹配到返回null
1) var re1=new RegExp("w{2}");
var res1=re1.exec("要检索的字符串");

2)var re3=/w{2}/;
var res2=re3.exec("要检索的字符串");

示例:
<!DOCTYPE html>
<html>
<head>

<title>exec()方法的使用</title>
<meta charset="utf-8">

</head>
<body>

<script type="text/javascript">
    var re1=/\d[a-zA-Z]/;   //匹配两位一个数字和一个忽略大小写的字母
    var res1=re1.exec('aa2edj3djie7788');
    var res2=re1.exec('458949468974484');
</script>

</body>
</html>

我们断点来看var res1=re1.exec('aa2edj3djie7788');执行结果

clipboard.png

匹配字符串'aa2edj3djie7788'结果断点.png

我们再断点看var res2=re1.exec('458949468974484');执行结果

clipboard.png

匹配字符串'458949468974484'结果断点.png

总上所知,我们使用exec()方法得到的结果有两个,一个是存有匹配字符串的数组,一个是null

二、RegExp对象和执行exec()得到的结果分析

需要划下重点
1)首先RegExp对象
只需要关系此对象的一个属性,lastIndex ,这个属性的值代表了 检索字符串 开始匹配的起始索引,依旧上代码和断点
<!DOCTYPE html>
<html>
<head>

<title>exec()方法的使用</title>
<meta charset="utf-8">

</head>
<body>

<script type="text/javascript">
    var re1=/\d[a-zA-Z]/;   //匹配两位一个数字和一个忽略大小写的字母
    var res1=re1.exec('aa2edj3djie7788');
</script>

</body>
</html>

我们来看断点中的RegExp对象,在调用exec()方法前
clipboard.png

调用exec()方法前RegEpx对象.png

我们看调用exec()方法后的断点

clipboard.png

调用exec()方法后RegEpx对象.png

注意,这里在调用exec()方法前后,lastIndex值虽然没有改变,但是这个属性至关重要。
1)lastIndex代表了每次匹配要检索的字符串的开始匹配的起始索引位置
2)在 修饰符使用了 g 后,此属性是变的,因此对后面理解 g修饰符是非常关键的。

2)执行exec()的到的结果
这里我们只断点查看数组结果,null也没啥好看的好像。
下面看断点截图
clipboard.png

执行exec()返回的数组.png

来看下数组对象每个属性:
var a=res1[0]; // 匹配到的字符串
var index=res1.index; //匹配到的字符串的第一个字符 在被检索字符串String中的位置
var input=res1.input; //被检索的字符串 string
var length=res1.length; //数组的长度


HappyCodingTop
526 声望847 粉丝

Talk is cheap, show the code!!