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

Javascript:如何使用正则表达式从字符串中提取多个值?,javascript,regex,facebook,facebook-javascript-sdk,Javascript,Regex,Facebook,Facebook Javascript Sdk,我的绳子像https://www.facebook.com/connect/login_success.html?request=516359075128086&to%5B0%5D=100004408050639&to%5B1%5D=1516147434&_=_ 此字符串是发送到fb的应用程序邀请url重定向请求的结果 我想做的是,将用户ID 10000440805639和1516147434提取到一个数组中 我尝试了var fbCode=testString.match/与%5B0%5D=.*

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

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

我想做的是,将用户ID 10000440805639和1516147434提取到一个数组中

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

您的正则表达式指定%5B0%5D,并将其转换为[0]。第二个用户ID附带索引1[1],其编码为%5B1%5D。如果要接受任何数字用户Id索引,请使用“/to%5B\d+%5D=.*?&/g”作为正则表达式,它允许任何数字\d+,并且是全局的

问候

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");
当使用g修饰符并希望获得组的匹配项时,可以循环匹配项。第一个括号中的组将在[1]中


这是一个巧妙的解决方案。谢谢。我想要一些像Jonny 5的答案。无论如何,谢谢。
var matches = [];

while(matches = re.exec(str)) {
  console.log(matches[1]);
}