JavaScript match-function - 返回找到的元素数组?

时间:2012-03-29 18:11:59

标签: 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,Mayer,Jack)”......我想到这样的事情:

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

我该怎么做?

谢谢!

2 个答案:

答案 0 :(得分:2)

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);

演示:http://jsfiddle.net/Znu7N/

答案 1 :(得分:0)

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

clickedId.match(/([\d]+),([\d]+),([\w]+),([\w]+)/g);

然后剩下的应该工作

相反,您将所有内容放入一个组中,使整个表达式匹配为单个字符串