JavaScript匹配函数-返回找到的元素数组?

JavaScript匹配函数-返回找到的元素数组?,javascript,Javascript,我有一个字符串,其格式如下(3,1,Mayer,Jack)。我需要所有4个元素作为自己的变量。我考虑过使用JavaScript的match()函数来实现这一点,但我不知道如何获得变量中的4个元素 我用以下代码进行了尝试: var clickedId = '(3,1,Mayer,Jack)'; var pregId = clickedId.match(/([\d]+,[\d]+,[\w]+,[\w]+)/g); alert(pregId[0]); 但我得到一个弹出窗口,上面有“(3,1,Maye

我有一个字符串,其格式如下(3,1,Mayer,Jack)。我需要所有4个元素作为自己的变量。我考虑过使用JavaScript的match()函数来实现这一点,但我不知道如何获得变量中的4个元素

我用以下代码进行了尝试:

var clickedId = '(3,1,Mayer,Jack)';
var pregId = clickedId.match(/([\d]+,[\d]+,[\w]+,[\w]+)/g);
alert(pregId[0]);
但我得到一个弹出窗口,上面有“(3,1,Mayer,Jack)”。。。我想到了这样的事情:

var id = pregId[0];
var teamid = pregId[1];
var surname = pregId[2];
var name = pregId[3];
我该怎么做


谢谢

match函数匹配整个表达式,而不是提取整个表达式的部分。因此,您需要对每个单独的元素进行匹配,比如使用类似于
(\d|\w)+
的正则表达式。下面是一个例子:

var clickedId = '(3,1,Mayer,Jack)';
var pregId = clickedId.match(/((\d|\w)+)/g);

var id = pregId[0];
var teamid = pregId[1];
var surname = pregId[2];
var name = pregId[3];

alert(surname);

演示:

在正则表达式中使用单个组:

clickedId.match(/([\d]+),([\d]+),([\w]+),([\w]+)/g);
那么剩下的就行了


相反,您将所有内容放在一个组中,使整个表达式作为单个字符串进行匹配实际上,似乎可以提取整个表达式的一部分。看看这里:只需小心使用“\”(“您正在使用。您正在创建一个组,而不是匹配父代。如果您打算匹配父代,您需要避开它:”\(“
match
在Javascript中不起作用。您建议的结果将是
[“3,1,Mayer,Jack”]
.为了澄清这一点,
/([\d]+)、([\d]+)、([\w]+)、([\w]+)、([\w]+)/g.exec(“(3,1,迈耶,杰克)”
将返回
[“3,1,迈耶,杰克”,“3”,“1”,“迈耶”,“杰克”]