在javascript匹配中获取正则表达式的单独部分

时间:2011-07-09 23:52:47

标签: javascript regex

我在javascript中有以下正则表达式。我想匹配一个字符串,使其product (,|x) quantity, each price。以下正则表达式做到了这一点;但是它返回一个只包含一个元素的数组。我想要一个数组,它首先返回整个匹配的字符串,然后是产品,数量,每个价格。

// product,| [x] quantity, each price:
var pQe = inputText.match(/(^[a-zA-z -]+)(?:,|[ x ]?) (\d{0,3}), (?:each) ([£]\d+[.]?\d{0,2})/g);

(,| x)表示后跟逗号或x,因此它将匹配ice-cream, 99, $99ice-cream x 99, $99

我该怎么做?

2 个答案:

答案 0 :(得分:4)

我相信这就是你要做的事情:

How do you access the matched groups in a JavaScript regular expression?

如果有帮助,请告诉我。

答案 1 :(得分:2)

使用RegExp对象的exec函数。为此,您必须将语法更改为以下内容:

 var pQe = /(^[a-z ... {0,2})/g.exec(inputText)

返回数组的元素1将包含匹配的第一个元素,元素2将包含第二个元素,依此类推。如果字符串与正则表达式不匹配,则返回null。