加上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 ?

https://img.mukewang.com/climg/6380965a0902985003960278.jpg

写回答

1回答

好帮手慕久久

2022-11-25

同学你好,g是全局匹配,加上g时,后一次匹配会从前一次匹配结束位置开始,比如如下代码,第一次是用test方法进行了匹配:

https://img.mukewang.com/climg/6380977e09e9828608010244.jpg

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

https://img.mukewang.com/climg/6380979c09506b5808260156.jpg

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

https://img.mukewang.com/climg/638097d10986c07008890218.jpg

由于后面没有符合条件的字符了,所以结果为null。

祝学习愉快!

0

0 学习 · 15276 问题

查看课程