2017-10-19 98 views
-2

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

+1

我推荐你阅读[我可以问什么问题?](https://stackoverflow.com/help/on-topic)和[我如何问一个好问题?](https:/ /stackoverflow.com/help/how-to-ask)。 – Danmoreng

+0

@Jul构建该脚本的步骤比此处可以解答的时间长。您需要构建的是用于根据特定条件“抓取”您的客户网站的“Spider”。 Google如何解析HTML页面。这个问题没有单一的答案。 –

回答

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);