JavaScript regex to allow only numbers with optional 2 decimal places

I want to write a regex that allows

  • slaughter
  • 0-9 digits
  • optional fractional part with two decimal places (without restriction on the integral part, how many digits there can be)

For instance:

  • Allowed lists: [12, 232.0, 23. (with a dot only), 345.09, 78.23, 134.00, 0.21, .21, .02, .01.12]
  • Not Allowed [12.878, 34.343.334, .0003]

Using this regex will look like a javascript event

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

My code

 function validatenumber(evt) { var theEvent = evt || window.event; var key = theEvent.keyCode || theEvent.which; key = String.fromCharCode( key ); var regex = /^[0-9\b]+$/; // 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 a new regex:

 var regex = /^[0-9\b]+$/; // allow only numbers [0-9] 
+6
source share
4 answers

find a final solution at least

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

and

  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 = ""; } } } 
+4
source

Here he is:

 /^\d*(?:\.\d{1,2})?$/ 

Working demo: http://jsfiddle.net/qd7BL/

+6
source

How about this regex:

 ^\d*(?:\.\d\d)?$ 
0
source

This simple html code below will check the required value, as well as + ve and -ve numbers for at least 1 digit, additionally optional 2 digits after the decimal point.

JS Code:

  function validateNum() { /* For mandatry input field, use variable: "patForReqdFld". For optional input filed, use variable: "patForOptFld". */ var patForReqdFld = /^(\-)?([\d]+(?:\.\d{1,2})?)$/; var patForOptFld = /^(\-)?([\d]*(?:\.\d{1,2})?)$/; var value = document.getElementById('txtNum').value; if(patForReqdFld.test(value)) { alert('Valid Number: ' + value); } else { alert('Invalid Number: ' + value); } } 

HTML code:

  <label>Enter Number:&nbsp;</label> <input type="text" id="txtNum" onBlur="validateNum()"/> 
0
source

All Articles