Javascript 解析HTML源中的美元金额,然后将最高金额设置为var
我需要一个JavaScript函数,它将解析作为外部脚本调用的页面的HTML源代码,检索源代码中的任何美元金额,并将最高美元金额设置为JavaScript变量Javascript 解析HTML源中的美元金额,然后将最高金额设置为var,javascript,html,parsing,Javascript,Html,Parsing,我需要一个JavaScript函数,它将解析作为外部脚本调用的页面的HTML源代码,检索源代码中的任何美元金额,并将最高美元金额设置为JavaScript变量 因此,例如,如果页面包含文本,您的产品是$40.32,税费是$4.50,您的总额是$44.82.,JS应该解析这些值,并将$44.82设置为var total作为最高金额。可能吗?看看这个问题,它演示了如何从字符串中提取数字: 试试这个: // get all content from page var content = docum
因此,例如,如果页面包含文本,您的产品是$40.32,税费是$4.50,您的总额是$44.82.,JS应该解析这些值,并将$44.82设置为var total作为最高金额。可能吗?看看这个问题,它演示了如何从字符串中提取数字: 试试这个:
// get all content from page
var content = document.body.innerHTML;
// create an array of all dollar amounts in the content
arrayNum = content.match(/\$[0-9]+\.[0-9]+/g);
// display array of numbers
console.info(arrayNum);
var high = 0;
for(var i = 0; i < arrayNum.length; i++) {
// remove the dollar sign and cast the string to a float
arrayNum[i] = parseFloat(arrayNum[i].substring(1));
// get the high value - O(n) operation
high = ( (arrayNum[i]) > high ) ? arrayNum[i] : high;
}
alert("High value = " high);
请看下面这个问题,它演示了如何从字符串中提取数字: 试试这个:
// get all content from page
var content = document.body.innerHTML;
// create an array of all dollar amounts in the content
arrayNum = content.match(/\$[0-9]+\.[0-9]+/g);
// display array of numbers
console.info(arrayNum);
var high = 0;
for(var i = 0; i < arrayNum.length; i++) {
// remove the dollar sign and cast the string to a float
arrayNum[i] = parseFloat(arrayNum[i].substring(1));
// get the high value - O(n) operation
high = ( (arrayNum[i]) > high ) ? arrayNum[i] : high;
}
alert("High value = " high);
您可以通过抓取文档的innerHtml,从Javascript中抓取当前文档的HTML,如:
document.getElementsByTagName('html')[0].innerHTML
((\$(([0-9]{0,1})?\.[0-9]{1,2}))|(\$([1-9]{1}[0-9]{0,2}([,][0-9]{3})*)(\.[0-9]{1,2})?))
然后可以使用正则表达式提取所有货币值,如:
document.getElementsByTagName('html')[0].innerHTML
((\$(([0-9]{0,1})?\.[0-9]{1,2}))|(\$([1-9]{1}[0-9]{0,2}([,][0-9]{3})*)(\.[0-9]{1,2})?))
只要遍历所有匹配项,每次当前匹配项大于总计值时,将总计设置为当前匹配项
免责声明:该正则表达式是从社区中提取的,我不能向您保证它是100%完全可靠的。您可以通过获取文档的内部HTML从Javascript中获取当前文档的HTML,类似于:
document.getElementsByTagName('html')[0].innerHTML
((\$(([0-9]{0,1})?\.[0-9]{1,2}))|(\$([1-9]{1}[0-9]{0,2}([,][0-9]{3})*)(\.[0-9]{1,2})?))
然后可以使用正则表达式提取所有货币值,如:
document.getElementsByTagName('html')[0].innerHTML
((\$(([0-9]{0,1})?\.[0-9]{1,2}))|(\$([1-9]{1}[0-9]{0,2}([,][0-9]{3})*)(\.[0-9]{1,2})?))
只要遍历所有匹配项,每次当前匹配项大于总计值时,将总计设置为当前匹配项
免责声明:该regex于年月日从社区中推出,我不能向您保证它是100%完全可靠的。基于我写这篇文章的提示,谢谢你,这很有效。希望您或我的解决方案能够帮助其他人: var dochtml=document.getElementsByTagName'body'[0].innerHTML dochtml=dochtml.replace/\r\n |\n |\r/gm var price_数组=新数组; var pattmatch=/\$[0-9]{0,1}?[0-9]{1,2}\$[1-9]{1}[0-9]{0,2}[,][0-9]{3}*.[0-9]{1,2}?/gi; price_array=dochtml.matchpattmatch if-price\u数组{ 对于var i=0;itotal | |!总计{ var总计=价格_数组[i]; } } document.writetotal;
}基于我写这篇文章的技巧,谢谢你,这很有效。希望您或我的解决方案能够帮助其他人: var dochtml=document.getElementsByTagName'body'[0].innerHTML dochtml=dochtml.replace/\r\n |\n |\r/gm var price_数组=新数组; var pattmatch=/\$[0-9]{0,1}?[0-9]{1,2}\$[1-9]{1}[0-9]{0,2}[,][0-9]{3}*.[0-9]{1,2}?/gi; price_array=dochtml.matchpattmatch if-price\u数组{ 对于var i=0;itotal | |!总计{ var总计=价格_数组[i]; } } document.writetotal;
}当然有可能。到目前为止你试过什么?你想发布一些代码吗?你的问题不应该是理论性的,也不应该让别人为你编写完整的解决方案。我是一名PHP开发人员,没有JS经验。我假设它以某种方式使用document.body.innerHTML,但我需要将$value解析为一个数组,然后使用max。谢谢你的指点。这是一个有趣的问题。你确实清楚地表明了你在寻找什么+1当然有可能。到目前为止你试过什么?你想发布一些代码吗?你的问题不应该是理论性的,也不应该让别人为你编写完整的解决方案。我是一名PHP开发人员,没有JS经验。我假设它以某种方式使用document.body.innerHTML,但我需要将$value解析为一个数组,然后使用max。谢谢你的指点。这是一个有趣的问题。你确实清楚地表明了你在寻找什么+1.