加上g 显示为null 是什么原因
来源:2-15 编程练习
慕移动4506339
2022-11-25 18:19:09
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>正则表达式</title>
</head>
<body>
<script>
var str = 'regular expression = regexp';
var regexp1 = /lar\sexp/g;
var regexp2 = new RegExp('lar\\sexp', 'g');
document.write(regexp1.test(str) + '/');
document.write(regexp2.test(str) + '/');
var result1 = regexp1.exec(str);
var result2 = regexp2.exec(str);
document.write(result1 + '/');
document.write(result2);
</script>
</body>
</html>老师,为什么这里在正则上加上g全局搜索,结果显示为null ?

1回答
好帮手慕久久
2022-11-25
同学你好,g是全局匹配,加上g时,后一次匹配会从前一次匹配结束位置开始,比如如下代码,第一次是用test方法进行了匹配:

此时可以匹配到下图的p处:

下一次匹配(exec),则从上图中的p往后继续查找:

由于后面没有符合条件的字符了,所以结果为null。
祝学习愉快!