我想提取十进制数265.12或从具有值或或或0.0的字母数字字符串(例如金额)中提取并使用它在 JSP 中应用 struts 逻辑标记。不确定如何在 JavaScript 的帮助下提取数字。$265.12+$265.12-$0.0+$0.0-
			
			20935 次
		
6 回答
            26        
        
		
你可以像这样使用正则表达式,
var amount = "$265.12+";
var doublenumber = Number(amount.replace(/[^0-9\.]+/g,""));
于 2012-05-02T10:25:38.527   回答
    
    
            10        
        
		
如果没有错误检查,以下将执行:
var string = "$123123.0980soigfusofui"
var number = parseFloat(string.match(/[\d\.]+/))
123123.098
于 2012-05-02T10:27:42.460   回答
    
    
            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();">
于 2012-05-02T10:38:03.697   回答
    
    
            -1        
        
		
您可能对这个用于格式化货币的库感兴趣http://josscrowcroft.github.com/accounting.js/
于 2012-05-02T10:28:09.863   回答
    
    
            -1        
        
		
一个更优雅的解决方案,也是一种避免0.7700000004javascript数学的方法:
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
于 2015-10-29T18:06:04.563   回答
    
    
            -2        
        
		
利用 :
var str = parseFloat("$265.12".match(/[\d\.]+/))
alert(str % 1); => 0.12000000000000455
于 2012-05-02T10:32:52.713   回答