Introduction
Operations with strings vary from splitting to the removal of whitespaces to checking if a string contains spaces. JavaScript provides built-in string methods and features that allow us to manipulate or work with strings. Strings are immutable, and so the way we work with them can be a little difficult compared to arrays (even though both are sequences).
In this article, we will discuss and explain to check if the string contains spaces using two approaches - the indexOf
method and regular expression.
Different methods to check if string contains spaces in JavaScript
Method-1: Use indexOf
method
Not to be confused with the array indexOf
method, the String.prototype.indexOf()
takes a string argument and searches for it within the string it’s called upon and returns the index of the first occurrence of the string argument.
Let’s work with the indexOf
method, and search for the word water
inside the sentence
binding, and log the starting index of the word inside the sentence.
const sentence =
"The water levels across the earth, and that's due to an increase in rain centimetres and worsening climae change and maybe because due to ice melting to water too (who knows)";
const search = "water";
const indexOfSearchWord = sentence.indexOf(search);
const SecondIndexOfSearchWord = sentence.indexOf(search, indexOfSearchWord + 1);
console.log(`Index of the first ${search} is ${indexOfSearchWord}`);
console.log(`Index of the second ${search} is ${SecondIndexOfSearchWord}`);
Output
Index of the first water is 4
Index of the second water is 153
You can also see that we can find the second occurrence by passing a second argument (a number) to the indexOf
method which specifies the indexOf
method to check for the string argument after an index greater than or equal to the specified number.
So with the understanding of the indexOf
method, we can make use of it to check if the string contains spaces by passing a whitespace string to the method. Since the method returns an index when a whitespace exists, we can check if the value is greater than or equal to zero which returns true
if there is a whitespace in any index of the string and false
if otherwise.
const sentence = "Well, it is good";
const sentence1 = "Welcome";
function hasSpace(sentence) {
return sentence.indexOf(" ") >= 0;
}
console.log(hasSpace(sentence));
console.log(hasSpace(sentence1));
Output
true
false
Method-2: Use Regular Expressions
Regular expressions are patterns that we can make use of to match string character combinations, and in addition, we can make use of built-in methods such as exec
and test
. The test
method returns a Boolean value that indicates whether or not a pattern exists in a searched string, and we will use the appropriate string character combination to check if the string contains spaces (or whitespaces are present within the string).
The pattern for whitespace
is /s/
, and the /g
represents a global search/match, and we will use it together with the test
method to check for whitespace across the string, and if present, it returns true
.
const sentence = " Well, it is good";
const sentence1 = "Welcome";
function hasSpace(sentence) {
return /\\s/g.test(sentence);
}
console.log(hasSpace(sentence));
console.log(hasSpace(sentence1));
Output
true
false
Summary
The string indexOf
method and regular expression method are great and excellent approaches to check if string contains spaces, and a good understanding of how strings work and regular expressions are needed.
References
String.prototype.indexOf() - JavaScript | MDN (mozilla.org)
Regular expressions - JavaScript | MDN (mozilla.org)