I have a textbox where I want only allowed up to 11 digits, an optional comma, and two more digits after it. Anything else should not be rendered when the key is pressed into the textbox:
$('#txt').keypress(function (e) {
var code = e.which;
var key = String.fromCharCode(code);
// REGEX TO AVOID CHARS & A DOT (.)
var pattern = /[a-zA-Z]|\./g;
var isMatch = pattern.test(key);
if (isMatch) {
// DO NOT RENDER CHARS & dot
e.preventDefault();
}
});
The above code works when an invalid key is pressed, such as a char or a dot, but does not ensure only one comma and only 2 digits afterwards.
This must match:
12314
123123,44
This must not:
12313,6666
Here is a demo.
UPDATE: Any digit except numbers and comma must be avoided, so the regex I proposed is not valid since only prevents dots (.).