获取javascript上字符串中括号内的所有参数

获取javascript上字符串中括号内的所有参数,javascript,Javascript,我有一个字符串变量,括号内有一些数字: var num = '[3][8]1'; 我想将括号内的数字(本例中为“3”和“8”)放入一个新数组中 这就是我尝试过的: var searchFill = num.match(/\[(.*?)\]/); console.log(searchFill[1]); 但这仅显示括号内匹配的第一个元素。我怎样才能得到所有的 您忘记将g添加为regex的全局变量: var num='[3][8]1'; var searchFill=num.match(/\[(

我有一个字符串变量,括号内有一些数字:

var num = '[3][8]1';
我想将括号内的数字(本例中为“3”和“8”)放入一个新数组中

这就是我尝试过的:

var searchFill = num.match(/\[(.*?)\]/);
console.log(searchFill[1]);

但这仅显示括号内匹配的第一个元素。我怎样才能得到所有的

您忘记将
g
添加为regex的全局变量:

var num='[3][8]1';
var searchFill=num.match(/\[(.*?)\]/g);

控制台日志(searchFill)
您忘记将
g
添加为regex的全局:

var num='[3][8]1';
var searchFill=num.match(/\[(.*?)\]/g);
控制台日志(searchFill)在您的情况下

var num = '[3][8]1';
var searchFill = num.match(/\[(.*?)[0-9]\]/g);
console.log(searchFill);
var num='[3][8]1';
var searchFill=num.match(/\[(.*)[0-9]\]/g);
控制台日志(searchFill)在您的情况下

var num = '[3][8]1';
var searchFill = num.match(/\[(.*?)[0-9]\]/g);
console.log(searchFill);
var num='[3][8]1';
var searchFill=num.match(/\[(.*)[0-9]\]/g);

控制台日志(searchFill)
尝试在RegExp的末尾添加一个
g
,如:
/\[(.*?\]/g
g
表示将在整个字符串中全局搜索表达式。
或者,如果愿意,可以添加一个
*
,如
/\[(.*?*\]/
,这意味着选择组可能出现0-n次,而不是像在解决方案中那样只出现一次

尝试在RegExp的末尾添加一个
g
,如:
/\[(.*?\]/g
g
表示将在整个字符串中全局搜索表达式。
或者,如果愿意,可以添加一个
*
,如
/\[(.*?*\]/
,这意味着选择组可能出现0-n次,而不是像在解决方案中那样只出现一次

正如其他人所指出的,您必须使用
g
全局标志。但我也怀疑你想要的只是括号中的数字,而不是括号本身。为此,您可能希望使用而不是匹配,因为匹配将放弃捕获组

var num='[3][8]1'
var regex=/\[(.*?\]/g
var searchFill=[]
var匹配;
while(match=regex.exec(num)){
searchFill.push(匹配[1])
}

console.log(searchFill)
正如其他人所指出的,您必须使用
g
全局标志。但我也怀疑你想要的只是括号中的数字,而不是括号本身。为此,您可能希望使用而不是匹配,因为匹配将放弃捕获组

var num='[3][8]1'
var regex=/\[(.*?\]/g
var searchFill=[]
var匹配;
while(match=regex.exec(num)){
searchFill.push(匹配[1])
}
console.log(searchFill)