Javascript:如何使用正则表达式从字符串中提取多个值?

Del*_*mas 3 javascript regex facebook facebook-javascript-sdk

我的字符串就像https://www.facebook.com/connect/login_success.html?request=516359075128086&to%5B0%5D=100004408050639&to%5B1%5D=1516147434&_=_

此字符串是发送到 Facebook 的应用程序邀请 URL 重定向请求的结果。

我想要做的是将用户 id 100004408050639 和 1516147434 提取到一个数组中。

我尝试过var fbCode = testString.match(/to%5B0%5D=(.*)&/);,但这仅返回这些数字中的一个,即第一次出现。

Jon*_*y 5 5

var str = "https://www.facebook.com/connect/login_success.html?request=516359075128086&to%5B0%5D=100004408050639&to%5B1%5D=1516147434&_=_";

var re = new RegExp("to%5B[01]%5D=(\\d+)", "g");
Run Code Online (Sandbox Code Playgroud)

当使用g修饰符进行全局搜索并想要获取(组的匹配项时),可以循环遍历匹配项。第一个括号内的组将位于[1]

var matches = [];

while(matches = re.exec(str)) {
  console.log(matches[1]);
}
Run Code Online (Sandbox Code Playgroud)