Allow only 2 decimal points when entering number to a textbox using jquery.
Please suggest any regex to allow only two decimal in textbox.
I have tried the following code.
$("#amountId").val().replace (/(\.\d\d)\d+|([\d.]*)[^\d.]/, '$1$2');
I was just testing using regex to learn it. But I recommend going with roasted's solution.
<input id="txtId" type="text"></input>
var txt = document.getElementById('txtId');
txt.addEventListener('keyup', myFunc);
function myFunc(e) {
var val = this.value;
var re = /^([0-9]+[\.]?[0-9]?[0-9]?|[0-9]+)$/g;
var re1 = /^([0-9]+[\.]?[0-9]?[0-9]?|[0-9]+)/g;
if (re.test(val)) {
//do something here
} else {
val = re1.exec(val);
if (val) {
this.value = val[0];
} else {
this.value = "";
}
}
}
Working Fiddle
You could do it without regex:
var dec = parseFloat($("#amountId").val(),10).toFixed(2);
HTML:
<input type="text" class="maskedExt" maskedFormat="3,2" />
maskedFormat="number count before decimal point, number count after decimal point"
Script:
$(document).ready(function () {
$('body').on('keyup', '.maskedExt', function () {
var num = $(this).attr("maskedFormat").toString().split(',');
var regex = new RegExp("^\\d{0," + num[0] + "}(\\.\\d{0," + num[1] + "})?$");
if (!regex.test(this.value)) {
this.value = this.value.substring(0, this.value.length - 1);
}
});
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With