我可以使用正则表达式在产品页面上找到最便宜的价格吗?

时间:2017-10-19 15:45:33

标签: javascript google-adwords

我正在尝试构建一个动态脚本,以便从客户的网站中提取价格,以便使用广告定制工具插入广告。有些产品页面很容易,因为它们只有一个价格,但在某些情况下有几个。我如何编写一个使用正则表达式匹配页面上任何价格的脚本,然后返回最便宜的一个?

2 个答案:

答案 0 :(得分:1)

正则表达式有它的局限性。它会匹配价格,但您需要一个脚本才能处理正则表达式为您找到的信息。

假设您的问题主要是找到最便宜的价格,这里有一个脚本,它将获取变量pageText,刮取货币数字,转换为整数然后获取最小数字。

var pageText = "$65.54, hello there king cupid. $54.32 & of course 
$50. $170,000.54";
var pricesRegex = /(\$[0-9,]+(\.[0-9]{2})?)/g;
var parsedPrices = pageText.match(pricesRegex);
var numbers = [];
parsedPrices.map((price) => {
numbers.push(Number(price.replace(/,/g, '').split("$")[1]));
});
var cheapestPrice = Math.min.apply(null, numbers);

答案 1 :(得分:0)

你不能用正则表达式做到这一点,至少不是没有完全疯了。正则表达式是一个匹配字符的工具 - 数字,字母等。它对角色的含义一无所知。通常,您可以使用它从另一个文本中提取文本的某些部分,但要执行数字比较,您需要将文本转换为数字,例如使用适当的编程语言。