Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解析HTML源中的美元金额,然后将最高金额设置为var_Javascript_Html_Parsing - Fatal编程技术网

Javascript 解析HTML源中的美元金额,然后将最高金额设置为var

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

我需要一个JavaScript函数,它将解析作为外部脚本调用的页面的HTML源代码,检索源代码中的任何美元金额,并将最高美元金额设置为JavaScript变量


因此,例如,如果页面包含文本,您的产品是$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.