在javascript匹配中获取正则表达式的单独部分[重复]
Posted
技术标签:
【中文标题】在javascript匹配中获取正则表达式的单独部分[重复]【英文标题】:Getting separate parts of a regex in javascript match [duplicate] 【发布时间】:2011-10-02 01:38:49 【问题描述】:我在 javascript 中有以下正则表达式。我想匹配一个字符串,所以它的product (,|x) quantity, each price
。以下正则表达式执行此操作;但是它返回一个只有一个元素的数组。我想要一个数组,它首先返回整个匹配的字符串,然后是产品、数量、每个价格。
// product,| [x] quantity, each price:
var pQe = inputText.match(/(^[a-zA-z -]+)(?:,|[ x ]?) (\d0,3), (?:each) ([£]\d+[.]?\d0,2)/g);
(,|x) 表示后跟逗号或x,所以会匹配ice-cream, 99, $99
或ice-cream x 99, $99
我该怎么做?
【问题讨论】:
原来我必须删除/g,我把它改成了/i。总之谢谢大家。有人可以删除这个问题,因为我没有注册。 【参考方案1】:使用 RegExp 对象的 exec 函数。为此,您必须将语法更改为以下内容:
var pQe = /(^[a-z ... 0,2)/g.exec(inputText)
返回数组的元素 1 将包含匹配的第一个元素,元素 2 将包含第二个元素,依此类推。如果字符串与正则表达式不匹配,则返回 null。
【讨论】:
无需切换到使用exec。他们使用的 match 函数也返回匹配数组。以上是关于在javascript匹配中获取正则表达式的单独部分[重复]的主要内容,如果未能解决你的问题,请参考以下文章