使用jQuery从HTML内容中提取数字

时间:2017-04-18 20:44:55

标签: javascript jquery

我正试图从这些div中获取数字,所以没有“$”或“/ BX”

 <span class="SRPRef">$6.16/BX</span>
 <div class="Price">$12.32</div>

我正在使用这个jQuery计算百分比,但我不知道如何只获取整数。

     var PriceReftxt = $('.Price').text();
     var SRPReftxt = $('.SRPRef').text();

        // CONVERT TO DECIMAL
      var PriceRef = parseInt(PriceReftxt).toFixed(2);
      var SRPRef = parseInt(SRPReftxt).toFixed(2);


         // DO LOGIC BASED MATH
      var Increase = (SRPRef - PriceRef);
     var PercentIncrease = ((Increase / PriceRef) * 100).toFixed(2);

        // FIND EMPTY CELL, AND PUT % NUMBER IN
      $('.SavingsPercent').text("Savings: " + PercentIncrease + "%");

4 个答案:

答案 0 :(得分:1)

RegEx也许?

$('.Price').text().replace(/[^0-9]/gi, '');
 var number = parseInt(Price, 10);
 $('.SRPRef').text().replace(/[^0-9]/gi, '');
 var number2 = parseInt(SRPRef, 10);

答案 1 :(得分:1)

您可以使用以下内容仅提取小数:

function extractNumber(string2extract){
    var numberPattern = /[0-9]+(\.[0-9][0-9]?)?/g;
    return string2extract.match(numberPattern);
}

var PriceReftxt = extractNumber($('.Price').text());
var SRPReftxt   = extractNumber($('.SRPRef').text());

答案 2 :(得分:0)

你可以做的一件事是用空字符串替换它们("$""/BX"),如果它们存在,它们将有效地删除它们:

myString = myString.replace("$", "").replace("/BX", "");

例如,如果myString的值为"$6.16/BX",则会"6.16"

或者你可以制作一个除去数字和句号之外的所有内容的函数。例如:

&#13;
&#13;
function getNumerFromString(str)
{
  return str.replace(/[^0-9\.]/g,"");
}

console.log(getNumerFromString("$6.16/BX"))
console.log(getNumerFromString("$12.32"))
console.log(getNumerFromString("abc$1.00def"))
&#13;
&#13;
&#13;

答案 3 :(得分:0)

通常在尝试解析事物时,请使用regex。以您的标记类为例。如果你想真正做一些数学计算,只需parseInt结果

&#13;
&#13;
// get our numbers
var res1 = $(".SRPRef").text().match(/\d*\.?\d+/);
var res2 = $(".Price").text().match(/\d*\.?\d+/);

// show our results
$(".result").html(res1 + "<br>" + res2);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="SRPRef">$6.16/BX</span>
 <div class="Price">$12.32</div>

<h4>results:<h4>
<span class="result"></span>
&#13;
&#13;
&#13;