12

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.

Heretic Monkey
  • 11,687
  • 7
  • 53
  • 122
ank87
  • 131
  • 1
  • 1
  • 4

6 Answers6

31

You can use regex like this,

Live Demo

var amount = "$265.12+";
var doublenumber = Number(amount.replace(/[^0-9\.]+/g,""));
Adil
  • 146,340
  • 25
  • 209
  • 204
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
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
-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