我的字符串就像https://www.facebook.com/connect/login_success.html?request=516359075128086&to%5B0%5D=100004408050639&to%5B1%5D=1516147434&_=_
此字符串是发送到fb。
的应用邀请网址重定向请求的结果我想要做的是,将用户ID 100004408050639和1516147434提取到数组。
我尝试了var fbCode = testString.match(/to%5B0%5D=(.*)&/);
,但这只返回其中一个数字,即第一次出现。
答案 0 :(得分:0)
您的正则表达式指定%5B0%5D
转换为[0]
。第二个用户ID带有索引1([1]
),编码为%5B1%5D
。如果您想接受任何(数字)用户ID索引,请使用“/to%5B\d+%5D=(.*?)&/g
”作为您的正则表达式,它允许任意数字(\d+
)以及全局。
问候。
答案 1 :(得分:0)
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");
对global search使用g
修饰符并希望获得(
组)
的匹配时,可以循环匹配。第一个带括号的组的那些将在[1]
var matches = [];
while(matches = re.exec(str)) {
console.log(matches[1]);
}