I want to extract decimal number 265.12
or 0.0
from alphanumeric string (say amount) having value $265.12+
or $265.12-
or $0.0+
or $0.0-
and use it apply struts logic tag in JSP. Not sure how to extract number maybe with help of JavaScript.
Asked
Active
Viewed 2.7k times
12

Heretic Monkey
- 11,687
- 7
- 53
- 122

ank87
- 131
- 1
- 1
- 4
6 Answers
12
Without error checks, following will do:
var string = "$123123.0980soigfusofui"
var number = parseFloat(string.match(/[\d\.]+/))
123123.098

Oleg V. Volkov
- 21,719
- 4
- 44
- 68
-
1I believe the regex can be shortened to `/[\d.]+/` - stumbled upon that in JS – Reece Daniels Jun 10 '20 at 22:58
0
Try this also,
<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();">

Daya
- 724
- 3
- 14
- 32
-1
You might be interested in this library for formatting money http://josscrowcroft.github.com/accounting.js/

250R
- 35,945
- 7
- 33
- 25
-
-
there's a method called unformat() that returns number. E.g. accounting.unformat("$ 12,345,678.90"); // 12345678.9 – 250R May 02 '12 at 12:44
-1
A more elegant solution and also a method to avoid the 0.7700000004
javascript math do this:
var num = 15.3354;
Number(String(num).substr(String(num).indexOf('.')+1));
The result will always be the exact number of decimals. Also a prototype
for easier use
Number.prototype.getDecimals = function () {
return Number(String(this).substr(String(this).indexOf('.')+1));
}
so now just 15.6655.getDecimals() ==> 6655

Pian0_M4n
- 2,505
- 31
- 35
-2
use :
var str = parseFloat("$265.12".match(/[\d\.]+/))
alert(str % 1); => 0.12000000000000455

swati
- 1,719
- 10
- 13