请问老师exec方法为什么返回null

来源:2-7 编程练习

慕标4507442

2019-12-14 17:05:13

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

<title>正则表达式</title>

</head>

<body>


<script type="text/javascript">

    var str = 'regular expression = regexp';

/*此处写代码*/

var str = "regular expression = regexp";

var patten = new RegExp("lar exp","ig");

document.write(patten.test(str) + "/");

document.write(patten.exec(str) + "/");

</script>

</body>


</html>


写回答

1回答

好帮手慕慕子

2019-12-14

同学你好, 正常情况下, 正则表达式匹配字符串的时候, 每一次都会从开始到结尾进行匹配。但是test和exec方法不同, 添加了全局匹配之后, 再次开始匹配的时候, 是从上一次匹配结束的位置进行下一次匹配。

以同学的代码为例, 先使用test方法,匹配到“lar exp”,结束本次匹配, 然后使用exec方法的时候, 从“ression。。。”的位置开始向后匹配字符串,所以无法匹配到,返回null。

http://img.mukewang.com/climg/5df4ae2a09b2086008520171.jpg

示例: 可以给在字符串中添加一个“拉人exp”,测试一下, 验证exec是从上一次匹配结束的位置开始进行匹配的。

http://img.mukewang.com/climg/5df4ae57095e8cd809370170.jpg

此时exec是可以匹配到内容的

http://img.mukewang.com/climg/5df4ae6209a388b801720048.jpg

对于这些细节, 同学可以在编写代码的过程中慢慢积累, 扩充自己的知识面

这道编程题不需要添加修饰符,然后采用两种方法进行匹配,示例:

http://img.mukewang.com/climg/5df4aecd094e220b09480376.jpg

如果帮助到了你, 欢迎采纳,祝学习愉快~~~~

0

0 学习 · 14456 问题

查看课程