To check if a string contains whitespace in JavaScript, call the test()
method on this regex: \s
, i.e., /\s/.test(str)
. test()
will return true
if the string contains any whitespace character. Otherwise, it will return false
.
function containsWhitespace(str) {
return /\s/.test(str);
}
console.log(containsWhitespace(' ')); // true
console.log(containsWhitespace('JavaScript')); // false
console.log(containsWhitespace('coding beauty')); // true
console.log(containsWhitespace('string\twith\ttabs')); // true
console.log(containsWhitespace('string\nwith\nnewline')); // true
The RegExp
test()
method searches a string for matches with a regular expression. It returns true
if any matches are found. Otherwise, it returns false
.
The forward slashes /
and /
indicate the start and end of the regular expression.
The \s
matches any single whitespace character in the string.
This method will match any whitespace character, including:
- space (
' '
) - tab (
\t
) - carriage return (
\r
) - line feed (
\n
), and - vertical tab (
\v
)
// space (' ')
console.log(containsWhitespace('coding beauty')); // true
// carriage return (\r)
console.log(containsWhitespace('coding\rbeauty\r')); // true
// line feed (\n)
console.log(containsWhitespace('coding\nbeauty\n')); // true
// form feed (\f)
console.log(containsWhitespace('coding\f\beauty\f')); // true
// vertical tab (\v)
console.log(containsWhitespace('coding\vbeauty\v')); // true
If you only to check if the string contains a space character, you’ll need to use a different approach…
Check if string contains only spaces
To check if a string contains only spaces, simply change the regex to a space character:
function containsWhitespace(str) {
return / /.test(str);
}
console.log(containsWhitespace('coding beauty')); // true
console.log(containsWhitespace('coding\rbeauty\r')); // false
console.log(containsWhitespace('coding\nbeauty\n')); // false
console.log(containsWhitespace('coding\f\beauty\f')); // false
console.log(containsWhitespace('coding\vbeauty\v')); // false
You can also use call the String
includes()
methods with a space character to check if such a character exists in the string.
function containsWhitespace(str) {
return str.includes(' ');
}
console.log(containsWhitespace('coding beauty')); // true
console.log(containsWhitespace('coding\rbeauty\r')); // false
console.log(containsWhitespace('coding\nbeauty\n')); // false
console.log(containsWhitespace('coding\f\beauty\f')); // false
console.log(containsWhitespace('coding\vbeauty\v')); // false
Check if string contains whitespace with String
match()
We can use the call the match()
method on a string with the /\s/
as an argument to check whether the string contains whitespace.
function containsWhitespace(str) {
return Boolean(str.match(/\s/));
}
console.log(containsWhitespace(' ')); // true
console.log(containsWhitespace('JavaScript')); // false
console.log(containsWhitespace('coding beauty')); // true
console.log(containsWhitespace('string\twith\ttabs')); // true
console.log(containsWhitespace('string\nwith\nnewline')); // true
Like the RegExp test()
method, match()
searches a string for matches with a regular expression, but it returns an array of the matches, instead of a boolean value.
// [ ' ', index: 6, input: 'coding beauty', groups: undefined ]
console.log('coding beauty'.match(/\s/));
In this case, match()
returns an array that contains the first match of a whitespace character, along with some additional properties that provide more information on the match.
If there are no matches found in the string, match()
returns null
:
console.log('Coding_Beauty'.match(/\s/)); // null
Because of how match()
works, we can cast the return value to a boolean, whose value would indicate whether or not any matches of a whitespace character exist in the string.
The Boolean()
constructor casts a truthy or false value to true
or false
. An array of matches from match() will be cast
to true
, indicating the presence of matches, and a null
value from match()
will be cast to false
, meaning that no matches can be found.
Note: In JavaScript, there are six falsy values: undefined
, null
, NaN
, 0
, ''
(empty string), and false
. Every other value is truthy.
Every Crazy Thing JavaScript Does
A captivating guide to the subtle caveats and lesser-known parts of JavaScript.