Use the RegExp test()
Method
If you want to allow your users to enter only numeric value in an HTML text input field, you can create a regular expression and test the input value against it using the test()
method.
Let's try out the following example which applies a red outline to the text input box if the value entered is not integer or float, applies green outline otherwise:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery Allow Only Numeric Input in HTML Text Input Field</title>
<style>
.success{
outline: 2px solid green;
}
.error{
outline: 2px solid red;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>
$(document).ready(function(){
// Define regular expression
var regex = /^\d*[.]?\d*$/;
$("#myInput").on("input", function(){
// Get input value
var inputVal = $(this).val();
// Test input value against regular expression
if(regex.test(inputVal)){
$(this).removeClass("error").addClass("success");
} else{
$(this).removeClass("success").addClass("error");
}
});
});
</script>
</head>
<body>
<input type="text" id="myInput">
<p><strong>Note:</strong> This HTML text input only allow numeric keystrokes and decimal ('.')</p>
</body>
</html>