正则表达式用于从html中提取价格作为文本

时间:2017-03-14 11:18:31

标签: javascript regex web-scraping

所以有一些html就像字符串一样:

     3.399<sup>99</sup> <span>Dineros</span> bla bla

甚至

     3,399<sup>99</sup> <span>Dollars</span> bla bla

我需要一些应用于此字符串的正则表达式:

["3399", "99"]

这样我最终可以从整数和小数部分得到一个数字

1 个答案:

答案 0 :(得分:1)

使用String#match方法获取字符串,并使用Array#map方法通过替换点或逗号生成数字数组。

var str = '3.399<sup>99</sup> <span>Dineros</span> bla bla';

console.log(
  str
  // get the pattern matching substrings
  .match(/\d+(?:[.,]\d+)?/g)
  // iterate and generate the Number
  .map(function(d) {
    // parse the generated string
    return Number(
      // replace the dot or comma
      d.replace(/[.,]/, '')
    )
  })
)