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