Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
140
rated 0 times [  143] [ 3]  / answers: 1 / hits: 56886  / 11 Years ago, sat, january 18, 2014, 12:00:00

I want to write a regular expression in which allows




  1. backspace

  2. 0-9 digits

  3. optional fractional part with two decimals (no limit on integral part how many digits there can be)



For example:




  • Allowed lists is [12 , 232.0 , 23.(with only dot) , 345.09 , 78.23 , 134.00 , 0.21 , .21 , .02 , .01 .12 ]

  • Not allowed are [12.878 , 34.343.334 , .0003 ]



The use of this regular expression would be like on javascript event



<input type=text  onKeyPress=validatenumber(event);   /><br>


My code is



function validatenumber(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var regex = /^[0-9b]+$/; // allow only numbers [0-9]
if( !regex.test(key) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}


I want to change only this line with the new regex:



var regex = /^[0-9b]+$/;    // allow only numbers [0-9]

More From » jquery

 Answers
9

find the final solution at least



<input id=txtId type=text onkeyup=NumAndTwoDecimals(event , this);></input>


and the



 function NumAndTwoDecimals(e , field) {
var val = field.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) {
field.value = val[0];
} else {
field.value = ;
}
}
}

[#73085] Friday, January 17, 2014, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
shantelc

Total Points: 737
Total Questions: 120
Total Answers: 104

Location: Nicaragua
Member since Tue, Dec 8, 2020
4 Years ago
;