How to Check if a Textbox Contains Only Numbers in Javascript
In this tutorial, you will learn how to check if a textbox contains only numbers in javascript. In HTML, a textbox is created using either input element or textarea element. Input element is suitable for a single line text content and textarea element is suitable for multiline text content. From a developer perspective, it can be a bit tricky to find if a textbox contains only numbers.
There are numerous ways to check if a textbox contains only numbers. But for the sake of simplicity, we will use the regular expression and ternary operator (?
) to accomplish our goal. The test()
method of RegExp object is used to perform a pattern search in a string and returns a Boolean value.
In the following example, we have one textbox where we will enter some random text. Upon click of a button, we will check if the textbox contains only numbers and display the result on the screen. Please have a look over the code example and the steps given below.
HTML & CSS
- We have 4 elements in the HTML file (
div
,input
,button
, andh1
). Thediv
element is just a wrapper for the rest of the elements. - The
innerText
for thebutton
element is“Check”
and for theh1
element, it is“Result”
. - We have done some basic styling using CSS and added the link to our
style.css
stylesheet inside thehead
element. - We have also included our javascript file
script.js
with ascript
tag at the bottom.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <link rel="stylesheet" href="style.css"> <title>Document</title> </head> <body> <div class="container"> <input type="text" /> <button>Check</button> <h1>Result</h1> </div> <script src="script.js"></script> </body> </html>
.container { text-align: center; } button { margin-top: 10px; padding: 10px 20px; } input { display: block; padding: 5px 10px; margin: auto; }
Javascript
- We have selected the
button
element,input
element, andh1
element using thedocument.querySelector()
method and stored them inbtnCheck
,inputEl
, andoutput
variables respectively. - We have attached a
click
event listener to thebutton
element. - We have the
regExp
variable which holds a regular expression/^\d+$/
as its value. - In the event handler function, we are getting value from the textbox and storing it in the
value
variable. - We are calling the
test()
method ofregExp
and passingvalue
as a parameter. It will return a Boolean value which we are storing in thehasNumbers
variable. - We are using the ternary operator (
?
) and checking whetherhasNumbers
is true or false. If it is true, that means the textbox contains only numbers. - Depending upon the result of the check, we will assign
“Yes”
or“No”
to theresult
variable. - We are displaying the
result
in theh1
element using theinnerText
property.
let btnCheck = document.querySelector("button"); let inputEl = document.querySelector("input"); let output = document.querySelector("h1"); let regExp = /^\d+$/; btnCheck.addEventListener("click", () => { let value = inputEl.value; let hasNumbers = regExp.test(value) let result = hasNumbers ? "Yes" : "No"; output.innerText = result; });