<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
function number_format
(n, l, d
){
//NUMBER, ITS NUMBERS OF DIGITS, AND DECIMAL POINT
var point
= $(
"#point").val();
//EITHER "." OR A ","
var every
= 3;
//INSERTS THE POINT EVERY 3 DIGITS FROM THE ONE'S PLACE
var p
= /^[0-9]+$/;
//NUMBER PATTERN FOR VALIDITY
var s
= '';
//BLANK UNTIL THE "FOR LOOP"
//SETS THE "EVERY 3 DIGITS POINT" DEPENDING ON DECIMAL POINT
if(point
=="."){
t
= ",";
//INSERTS A "," AFTER 3 DIGITS IF DECIMAL POINT IS "."
}
else {
t
= ".";
//INSERTS A "." AFTER 3 DIGITS IF DECIMAL POINT IS ","
}
//CHECKS WHETHER THE INPUT STRING IS A NUMBER
if(n.
match(p)){
for(i
=0; i
<l; i
++){
var e
= (l
-i)
-1;
//REVERSE THE "i" VARIABLE TO START FROM THE ONE'S PLACE
if(e
%every
==0){
s
+= n[i]
+t;
//IF THE "DIGIT POSITION" IS DIVISBLE BY 3, INSERTS THE "EVERY 3 DIGITS POINT"
}
else {
s
+= n[i];
//ELSE, JUST DISPLAYS THE DIGIT
}
}
if(s[s.length
-1]
==t){
f
= s.substr(
0, s.length
-1);
//REMOVES THE POINT FROM THE END Ex: (1,000,000,)
}
if(d
&&d.
match(p)){
f
+= point
+d;
//IF DECIMAL IS PRESENT
}
}
else {
f
= 'Digits 0-9 only';
}
$(
"#number").html(f);
//DISPLAYS FORMATTED NUMBER IN HTML
}
</script>
</head>
<body>
<input id="n" onKeyUp="number_format(this.value, this.value.length, $('#decimal').val())">
<select id="point" onChange="number_format($('#n').val(), $('#n').val().length, $('#decimal').val())">
<option value=".">.</option>
<option value=",">,</option>
</select>
<input id="decimal" onKeyUp="number_format($('#n').val(), $('#n').val().length, this.value)">
<span id="number">
</body>
</html>