Allow Only Numbers And Dot In Script
Answer :
This is a great place to use regular expressions.
By using a regular expression, you can replace all that code with just one line.
You can use the following regex to validate your requirements:
[0-9]*\.?[0-9]*
In other words: zero or more numeric characters, followed by zero or one period(s), followed by zero or more numeric characters.
You can replace your code with this:
function validate(s) { var rgx = /^[0-9]*\.?[0-9]*$/; return s.match(rgx); } That code can replace your entire function!
Note that you have to escape the period with a backslash (otherwise it stands for 'any character').
For more reading on using regular expressions with javascript, check this out:
- http://www.regular-expressions.info/javascript.html
You can also test the above regex here:
- http://www.regular-expressions.info/javascriptexample.html
Explanation of the regex used above:
The brackets mean "any character inside these brackets." You can use a hyphen (like above) to indicate a range of chars.
The
*means "zero or more of the previous expression."[0-9]*means "zero or more numbers"The backslash is used as an escape character for the period, because period usually stands for "any character."
The
?means "zero or one of the previous character."The
^represents the beginning of a string.The
$represents the end of a string.Starting the regex with
^and ending it with$ensures that the entire string adheres to the regex pattern.
Hope this helps!
Use Jquery instead. Add a decimal class to your textbox:
<input type="text" class="decimal" value="" /> Use this code in your JS. It checks for multiple decimals and also restrict users to type only numbers.
$('.decimal').keyup(function(){ var val = $(this).val(); if(isNaN(val)){ val = val.replace(/[^0-9\.]/g,''); if(val.split('.').length>2) val =val.replace(/\.+$/,""); } $(this).val(val); }); Check this fiddle: http://jsfiddle.net/2YW8g/
Hope it helps.
Just add the code below in your input text:
onkeypress='return event.charCode == 46 || (event.charCode >= 48 && event.charCode <= 57)'
Comments
Post a Comment