The simplest way will be to convert the string to a number and then check if its valid. As the value of inputs is always a string even if u use type="number", tho it is good to use it if u just want numbers as the input.
You can use isNaN(+value). Here + will convert a string to a number.
<input
type="text"
onChange={(e) => {
const value = e.target.value;
console.log(!isNaN(+value)); // true if its a number, false if not
}}
/>;
Some test cases:
console.log(!isNaN(+"54"));
console.log(!isNaN(+"23xede"));
console.log(!isNaN(+"test"));
Note: As mentioned this is a simple way, there can be workarounds to bypass this, for a robust solution you can have a look here: Check whether variable is number or string in JavaScript