To detect if a string is a number with regex, you can use the following regular expression:
^-?\d+(\.\d+)?$
Explanation:
^
matches the start of the string-?
matches an optional minus sign (-)\d+
matches one or more digits(\.\d+)?
matches an optional decimal point followed by one or more digits$
matches the end of the string
This regular expression will match any string that represents a number, including integers and decimal numbers, with or without a leading minus sign.
Here’s an example of how to use this regular expression to check if a string is a number in JavaScript:
function isNumber(str) {
return /^-?\d+\.?\d*$/.test(str);
}
console.log(isNumber('42')); // true
console.log(isNumber('-3.14')); // true
console.log(isNumber('0')); // true
console.log(isNumber('4.2.1')); // false
console.log(isNumber('hello')); // false
The test
method returns true
if the regular expression matches the given string, and false
otherwise.