10

10進数265.12または0.0英数字の文字列(量など)から値$265.12+または$265.12-または$0.0+またはを抽出し、それ$0.0-を使用してJSPでstrutsロジックタグを適用します。おそらくJavaScriptの助けを借りて数値を抽出する方法がわかりません。

4

6 に答える 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

より洗練されたソリューションと、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 に答える
-1

お金をフォーマットするためのこのライブラリに興味があるかもしれませんhttp://josscrowcroft.github.com/accounting.js/

于 2012-05-02T10:28:09.863 に答える
-2

使用する :

var str = parseFloat("$265.12".match(/[\d\.]+/))
alert(str % 1); => 0.12000000000000455
于 2012-05-02T10:32:52.713 に答える