<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> </body> <script> var str = "123hfgh789hgf25ghf456hg3.14f"; // ↑ var reg = /\d+/g; // ES6添加了y修饰符和g类似,不过y 修饰符在下次匹配的时候需要紧跟上次匹配成功之后的结果匹配,而g则是全局匹配; // exec() 方法在匹配全局对象的时候, 多次匹配会在上一次结束的地方继续匹配; console.log(str.match(reg));//["123", "789", "25", "456", "3", "14"] console.log(reg.exec(str));//["123", index: 0, input: "123hfgh789hgf25ghf456hg3.14f", groups: undefined] 每次只打印一个值,但包括很多信息。 reg.lastIndex = 0; console.log(reg.exec(str));//123..(很多信息). reg.lastIndex = 1; console.log(reg.exec(str));//23... reg.lastIndex = 3; console.log(reg.exec(str));//789... console.log(reg.lastIndex)//10 reg.lastIndex = 10; console.log(reg.exec(str));//25 console.log(reg.lastIndex)//15 // ........ reg.lastIndex=0; console.log(reg.exec(str));//123. console.log(reg.lastIndex) //3,最后一个值在第几位? var s = 'aaa_aa_a’; var r1 = /a+/g; var r2 = /a+/y; r1.exec(s) // ["aaa”] r2.exec(s) // ["aaa”] r1.exec(s) // ["aa”] r2.exec(s) // null </script> </html>