在正则表达式中查找数字(Javascript)

时间:2011-07-08 23:39:08

标签: javascript regex

这是一个奇怪的问题,但请耐心等待......

所以,我正在搞乱RegEx:我有以下代码,如果inputText var包含一个逗号,它可以正常工作,但如果我将其更改为“99 x icecream,每个£99”它不起作用。 ..(即它警告无效)

var inputText ="99, icecream, each £99";  // expensive ice cream

var inputText = inputText.toString(); // this was done because I though if I started a string with a number js might do that weird conversion stuff it does, but I don't need it right?

var qXpe = inputText.match(/(\d{1,3})(,|[ x ]?) (\w+), each ([£]\d+[.]?\d{0,2})/g);

alert(qXpe);

我想找到结构为quantity, product, £pricequantity x product, £price的句子,目前的正则表达式适用于前者。

因此,此正则表达式返回99, icecream, each £99null <{1}}

任何人都可以猜测为什么这不起作用?的Merci。

2 个答案:

答案 0 :(得分:1)

如果数字后面没有逗号,则后跟一个空格,但正则表达式没有反映出这一点,因为[ x ]?表示空格或x,可选。也许你想要( x )?

答案 1 :(得分:0)

尝试:

(\d+)(?:, | x )(\w+), £(\d+)

您可以使用rubular实时测试您的RegEx。享受