2012-05-02 59 views
2

我想提取从字母数字串的十进制数265.120.0来提取字符串十进制数(说量)具有值$265.12+$265.12-$0.0+$0.0-并使用它适用支柱逻辑标签在jsp。不知道如何在javascript的帮助下提取数字。如何使用javascript

回答

11

您可以使用正则表达式这样,

Live Demo

var amount = "$265.12+"; 
var doublenumber = Number(amount.replace(/[^0-9\.]+/g,"")); 
2

没有错误检查,下面会做什么:

var string = "$123123.0980soigfusofui" 
var number = parseFloat(string.match(/[\d\.]+/)) 

123123.098

0

你可能有兴趣在这个库用于格式化货币http://josscrowcroft.github.com/accounting.js/

+0

他怎么能当他需要提取,不打印? –

+0

有一个名为unformat()的方法返回数字。例如。 accounting.unformat(“$ 12,345,678.90”); // 12345678.9 – 250R

0

使用:

var str = parseFloat("$265.12".match(/[\d\.]+/)) 
alert(str % 1); => 0.12000000000000455 
0

试试这个也

<script type="text/javascript"> 
function validate(){ 
    var amount = $("#amount").val(); 
    alert(amount.split(".")[1]); 
} </script> 
</head> 
<body> 
<input type="hidden" name="amount" id="amount" value="25.50"> 
<input type="submit" onclick="validate();"> 
0

一个更优雅的解决方案,也是一个方法,以避免0.7700000004 JavaScript的数学做到这一点:

var num = 15.3354; Number(String(num).substr(String(num).indexOf('.')+1));

结果将始终是精确的小数位数。此外,使用更简便

Number.prototype.getDecimals = function() { return Number(String(this).substr(String(this).indexOf('.')+1)); }

所以现在prototype只是15.6655.getDecimals() ==> 6655