加上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。
祝学习愉快!