// 字符串的正则匹配,既可以使用 RegExp.exec() 方法,也可以使用 String.match() 方法 var str = "cat, bat, sat, fat"; var pattern = /.at/; var matches = str.match(pattern); console.log(matches); // 输出 ["cat", index: 0, input: "cat, bat, sat, fat"] var pamatches = pattern.exec(str); console.log(pamatches); // 输出 ["cat", index: 0, input: "cat, bat, sat, fat"] var patterng = /.at/g; var matchesg = str.match(patterng); console.log(matchesg); // 输出 ["cat", "bat", "sat", "fat"] var pamatchesg = patterng.exec(str); console.log(pamatchesg); // 输出 ["cat", index: 0, input: "cat, bat, sat, fat"] // 这是因为在 RegExp.exec() 方法中,即使设置了 g 标志,也只会返回一个匹配项的信息。但是,g 会导致每次调用 exec 方法时,不重置指针,会在字符串中查找新的匹配项,无 g 标志,则每次都会返回第一个匹配项信息。