如何使用javascript从字符串中提取十进制数

时间:2012-05-02 10:22:58

标签: regex jsp struts-1

我想从具有值265.120.0$265.12+或{{1}的字母数字字符串(例如金额)中提取十进制数字$265.12-$0.0+并使用它在$0.0-中应用struts逻辑标记。不确定如何在jsp的帮助下提取数字。

6 个答案:

答案 0 :(得分:14)

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

Live Demo

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

答案 1 :(得分:4)

如果没有错误检查,请执行以下操作:

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

123123.098

答案 2 :(得分:0)

您可能对此库感兴趣以格式化货币http://josscrowcroft.github.com/accounting.js/

答案 3 :(得分:0)

使用:

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

答案 4 :(得分: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();">

答案 5 :(得分:0)

更优雅的解决方案以及避免0.7700000004 javascript数学运算的方法:

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

结果将始终是精确的小数位数。另外prototype更容易使用

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

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