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

JavaScript match-function - Return Array of found elements?

本文关键字:元素 数组 返回 函数 JavaScript      更新时间:2023-09-26

我有一个字符串,其格式如下(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);

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

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

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

然后剩下的应该工作

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