如何捕获文本中某些单词后出现的多个数字?

时间:2015-10-22 19:14:24

标签: javascript text

我希望能够抓住在#34; NETTO-PRICE之后放置在文本中的数字:" (两者之间的空间也很少。)

文字(最终这个文字有2行/行):

  

产品:AMD MODEL-LINE:ATHLON CORES:X2型号:7750 FREQ:2.6   CORES:6 THREADS:2 NETTO-PRICE:250.00 QUANTITY:7 PRODUCENT:   INTEL MODEL-LINE:i7 CORES:X4型号:720QM FREQ:2.8 CORES:4   线程:8 NETTO-PRICE:450.00 QUANTITY:5

我试过这个:string.match(/[0-9]/g);但它会捕获本文中的所有数字,当我只想要 NETTO-PRICE后的那些数字

然而,这不起作用,因为它显示为null:string.match(/NETTO-PRICE:[0-9]/g);

如果我试图连接这个"参数"在match()方法中,出现错误。

[编辑]

我想只得到这个数字(作为价格),因为稍后我将计算brutto价格和netto(这个数字)和计算的brutto之间的差异。

[EDIT2] 如何更改下面的代码,使其适用于整个文本的变量,而不仅仅是引号中的文本?像var s = string.split(' ');之类的东西和字符串包含整个文本,而且代码就像:

var s = 'NETTO PRICE: 321.321'.split(' ');
if(s[s.indexOf('NETTO') + 1] === 'PRICE:')
    console.log(s[s.indexOf('NETTO') + 2])
else
    console.log('fake');

2 个答案:

答案 0 :(得分:1)

在这种情况下,您可以将正则表达式与非捕获组一起使用(请参阅related question on stackoverflow)。正则表达式看起来与此类似:/(?:NETTO-PRICE: )([0-9]+)/g

答案 1 :(得分:0)

我解决了这个问题:

layoutMargins

感谢@ Stubb0rn寻求有关Regex代码的帮助。