JavaScript中exec()方法详解

6次阅读

共计 1353 个字符,预计需要花费 4 分钟才能阅读完成。

使用 RegExp 对象的 exec() 方法:
直接调用即可。如果匹配到字符串返回一个数组;如果没有匹配到返回 null1)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’); 执行结果

匹配字符串 ’aa2edj3djie7788’ 结果断点.png
我们再断点看 var res2=re1.exec(‘458949468974484’); 执行结果

匹配字符串 ’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() 方法前
调用 exec() 方法前 RegEpx 对象.png
我们看调用 exec() 方法后的断点

调用 exec() 方法后 RegEpx 对象.png
注意,这里在调用 exec() 方法前后,lastIndex 值虽然没有改变,但是这个属性至关重要。1)lastIndex 代表了每次匹配要检索的字符串的开始匹配的起始索引位置 2)在 修饰符使用了 g 后,此属性是变的,因此对后面理解 g 修饰符是非常关键的。
2)执行 exec() 的到的结果这里我们只断点查看数组结果,null 也没啥好看的好像。下面看断点截图
执行 exec() 返回的数组.png
来看下数组对象每个属性:var a=res1[0]; // 匹配到的字符串 var index=res1.index; // 匹配到的字符串的第一个字符 在被检索字符串 String 中的位置 var input=res1.input; // 被检索的字符串 stringvar length=res1.length; // 数组的长度

正文完
 0