Does Javascript have a built-in function to see if a word is present in a string? I’m not looking for something like indexOf()
, but rather:
find_word('test', 'this is a test.') -> true
find_word('test', 'this is a test') -> true
find_word('test', 'I am testing this out') -> false
find_word('test', 'test this out please') -> true
find_word('test', 'attest to that if you would') -> false
Essentially, I’d like to know if my word appears, but not as part of another word. It wouldn’t be too hard to implement manually, but I figured I’d ask to see if there’s already a built-in function like this, since it seems like it’d be something that comes up a lot.
asked Aug 25, 2014 at 20:37
5
You can use split
and some
:
function findWord(word, str) {
return str.split(' ').some(function(w){return w === word})
}
Or use a regex with word boundaries:
function findWord(word, str) {
return RegExp('\b'+ word +'\b').test(str)
}
answered Aug 25, 2014 at 20:39
elclanrselclanrs
92.2k21 gold badges135 silver badges170 bronze badges
3
The JavaScript includes()
method determines whether a string contains the characters of a specified string. This method returns true if the string contains the characters, and false if not.
Syntax:
string.includes(searchvalue, start)
Parameter values:
Parameter Description searchvalue Required. The string to search for start Optional. Default 0. At which position to start the search
Example:
const sentence = 'The quick brown fox jumps over the lazy dog.';
const word = 'fox';
console.log(`The word "${word}" ${sentence.includes(word) ? 'is' : 'is not'} in the sentence`);
answered Sep 27, 2020 at 7:41
karelkarel
5,23943 gold badges45 silver badges50 bronze badges
Moderns browsers have the Array.prototype.includes()
, which determines whether an array includes a certain value among its entries, returning true
or false
as appropriate.
Here’s an example:
const ShoppingList = ["Milk", "Butter", "Sugar"];
console.log(`Milk ${ShoppingList.includes("Milk") ? "is" : "is not"} in the shopping list.`);
console.log(`Eggs ${ShoppingList.includes("Eggs") ? "is" : "is not"} in the shopping list.`)
Jakye
6,4013 gold badges18 silver badges36 bronze badges
answered Sep 27, 2020 at 3:16
2
The search()
method executes a search for a match between a regular expression and this String
object.
Try it
Syntax
Parameters
regexp
-
A regular expression object, or any object that has a
Symbol.search
method.If
regexp
is not aRegExp
object and does not have aSymbol.search
method, it is implicitly converted to aRegExp
by usingnew RegExp(regexp)
.
Return value
The index of the first match between the regular expression and the given string, or -1
if no match was found.
Description
The implementation of String.prototype.search()
itself is very simple — it simply calls the Symbol.search
method of the argument with the string as the first parameter. The actual implementation comes from RegExp.prototype[@@search]()
.
The g
flag of regexp
has no effect on the search()
result, and the search always happens as if the regex’s lastIndex
is 0. For more information on the behavior of search()
, see RegExp.prototype[@@search]()
.
When you want to know whether a pattern is found, and also know its index within a string, use search()
.
- If you only want to know if it exists, use the
RegExp.prototype.test()
method, which returns a boolean. - If you need the content of the matched text, use
match()
orRegExp.prototype.exec()
.
Examples
Using search()
The following example searches a string with two different regex objects to show a successful search (positive value) vs. an unsuccessful search (-1
).
const str = "hey JudE";
const re = /[A-Z]/;
const reDot = /[.]/;
console.log(str.search(re)); // returns 4, which is the index of the first capital letter "J"
console.log(str.search(reDot)); // returns -1 cannot find '.' dot punctuation
Specifications
Specification |
---|
ECMAScript Language Specification # sec-string.prototype.search |
Browser compatibility
BCD tables only load in the browser
See also
Теги: javascript, символ, поиск, методы, строка, индекс, проверка, строковые функции, слово, indexof
Для поиска слова, символа или любой другой подстроки в строке в языке программирования JavaScript используют хорошо известный метод indexOf. В результате проверки метод возвращает позицию первого совпадения, если же совпадение по введённому вами символу найдено не будет, будет возвращено -1.
Искомое слово или символ указываются первым параметром. Что касается второго параметра, то он необязателен. Зато с его помощью мы можем передать номер (индекс) символа или буквы, с которого надо начинать поиск. Важный момент: метод indexOf() чувствителен к регистру вводимых вами букв, слов и символов.
Синтаксис метода предельно прост:
строка.indexOf(первый параметр указывает, что ищем, [второй параметр определяет, откуда начинаем поиск]);Приведем примеры поиска слова в строке JavaScript
В примере ниже у нас есть строка ‘Я учусь в OTUS’, причём мы ищем в строке слово ‘учусь’. Метод вернёт нам индекс 2, т. к. именно с этой позиции начинается слово ‘учусь’ в строке. Тут стоит вспомнить, что индексация (подсчёт позиции) начинается с нуля, а не с единицы.
let str = 'Я учусь в OTUS; console.log(str.indexOf('учусь'));В результате получим следующий вывод:
В очередном примере в строке ‘Я учу Java и учу JavaScript в OTUS’ давайте найдём слово ‘учу’, но не первое его вхождение в строку, а второе. Следовательно, начнём поиск с 5-й позиции, указав это вторым параметром.
let str = 'Я учу Java и учу JavaScript в OTUS'; console.log(str.indexOf('учу', 5));Проверка приведёт к возвращению числа 13, т. к. именно с этой позиции начинается второе слово «учу» в нашей строке.
Давайте приведем ещё парочку примеров. В коде ниже, исследуемый нами метод поиска вернёт -1, ведь подстроки ‘Go’ в нашей строке попросту нет:
let str = 'Я учусь в OTUS'; console.log(str.indexOf('Go'));В принципе, как видите, ничего сложного. Нам вернётся -1 и в случае, если мы будем искать одинаковые слова с разным регистром (OTUS не равно OtuS):
let str = 'Я учусь в OTUS; console.log(str.indexOf(' OtuS'));Вернётся -1 и в последнем примере, ведь после позиции, которую мы выбрали вторым параметром для поиска, совпадения найдены не будут:
let str = 'Я учусь в OTUS'; console.log(str.indexOf('учусь', 7));Проверка приведёт к следующему результату:
Вот и всё, что можно сказать про простейший поиск слов и символов в строке JavaScript. Напоследок стоит упомянуть метод lastIndexOf(), тоже осуществляющий поиск символа, слова или любой подстроки в строке. Разница заключается лишь в том, что этот метод начинает искать с конца строки, а не с начала — в остальном он работает аналогично.
Больше операций по поиску в строке JavaScript, включая дополнительные операции по работе с подстрокой, вы найдёте здесь.
Интересует профессиональный курс по JavaScript-разработке? Переходите по ссылке ниже:
You can use .includes() and check for the word. To make sure it is a word and not part of another word, verify that the place you found it in is followed by a space, comma, period, etc and also has one of those before it. You can .split() your string by spaces (s+) into an array, and then use .includes() to check if the array of strings has your word within it: So, you can easily check if a string contains a particular substring using the .includes() method. You first need to convert it into array using split() and then use includes()
This is our Splunktool team suggestion ✌, we tried and its working fine
var str = "This is a test sentence"; var hasTest = str.includes("test");
You first need to convert it into array using split()
and then use includes()
string.split(" ").includes("on")
3._
function checkWord(word, str) { const allowedSeparator = '\s,;"'|'; const regex = new RegExp( `(^.*[${allowedSeparator}]${word}$)|(^${word}[${allowedSeparator}].*)|(^${word}$)|(^.*[${allowedSeparator}]${word}[${allowedSeparator}].*$)`, 'i', ); return regex.test(str); } [ 'phones are good', 'keep it on the table', 'on', 'keep iton the table', 'keep it on', 'on the table', 'the,table,is,on,the,desk', 'the,table,is,on|the,desk', 'the,table,is|the,desk', ].forEach((x) => { console.log(`Check: ${x} : ${checkWord('on', x)}`); });
Suggestion : 2
Find a top-rated training program
By continuing you agree to our Terms of Service and Privacy Policy, and you consent to receive offers and opportunities from Career Karma by telephone, text message, and email.
Find the right bootcamp for you
2._
let example = "Example String!"; let ourSubstring = "Example"; if (example.includes(ourSubstring)) { console.log("The word Example is in the string."); } else { console.log("The word Example is not in the string."); }
3._
let example = "Example String!"; let ourSubstring = "Example"; if (str.includes(ourSubstring, 7)) { console.log("The word Example is in the string."); } else { console.log("The word Example is not in the string"); }
5._
let example = "Example String!"; let ourSubstring = "Example"; if (example.indexOf(ourSubstring) != 0) { console.log("The word Example is in the string."); } else { console.log("The word Example is not in the string."); }
6._
let str = "Example String!"; let ourSubstring = "Bananas"; str.indexOf(ourSubstring);
Suggestion : 3
Write a JavaScript function to find a word within a string.
Test Data:
console.log(search_word(‘The quick brown fox’, ‘fox’));
console.log(search_word(‘aa, bb, cc, dd, aa’, ‘aa’));
Output:
«‘fox’ was found 1 times.»
«‘aa’ was found 2 times.» Previous: Write a JavaScript function to convert Hexadecimal to ASCII format.
Next: Write a JavaScript function check if a string ends with specified suffix.
Sample Solution:-
HTML Code:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JavaScript function to find a word within a string</title> </head> <body> </body> </html>
JavaScript Code:
function search_word(text, word) { var x = 0, y = 0; for (i = 0; i < text.length; i++) { if (text[i] == word[0]) { for (j = i; j < i + word.length; j++) { if (text[j] == word[j - i]) { y++; } if (y == word.length) { x++; } } y = 0; } } return "'" + word + "' was found " + x + " times."; } console.log(search_word('The quick brown fox', 'fox')); console.log(search_word('aa, bb, cc, dd, aa', 'aa'));
Sample Output:
'fox' was found 1 times. 'aa' was found 2 times.
You can avoid it like this
const found = [{ name: "Owen" }].find(i => i.name === 'Kim') || {}; console.log(found.name);
Suggestion : 4
Syntax breakdown of the indexOf() method in JavaScript
How to check if a string contains a specific substring using the indexOf() method
index0f() is the method you call on the word you want to search through, in this case, string. includes() is the method you call on the word you want to search through, which in this case is string. string is the word you want to search through.
The JavaScript includes()
method was introduced with ES6, and it is the most common and modern way of checking if a string contains a specific character or a series of characters.
The general syntax for the includes()
method looks something similar to this:
string.includes(substring, index);
Let’s see an example of how the includes()
method works.
First, I created a variable that holds the string Hello, World
— this is the string I want to search through:
let string = "Hello, World";
Next, I created a variable with the substring Hello
— this is the substring I want to search for in the original string:
let string = "Hello, World"; let substring = "Hello";
As mentioned in the section above, the includes()
method is case-sensitive.
See what happens when I change the value of substring
from Hello
to hello
:
let string = "Hello, World"; let substring = "hello"; console.log(string.includes(substring));
I will change the value of the substring
variable to H
:
let string = "Hello, World"; let substring = "H";
Suggestion : 5
This method lets you determine whether or not a string includes another string. true if the search string is found anywhere within the given string, including when searchString is an empty string; otherwise, false. You can work around this constraint by transforming both the original string and the search string to all lowercase: The includes() method is case sensitive. For example, the following expression returns false:
1._
includes(searchString)
includes(searchString, position)
2._
"Blue Whale".includes("blue");
3._
"Blue Whale".toLowerCase().includes("blue");
Suggestion : 6
The search() method executes a search for a match between a regular expression and this String object. String.prototype.search() The following example searches a string with two different regex objects to show a successful search (positive value) vs. an unsuccessful search (-1). Learn to style content using CSS
2._
const str = "hey JudE"; const re = /[A-Z]/; const reDot = /[.]/; console.log(str.search(re)); console.log(str.search(reDot));
Suggestion : 7
You want to check whether a string contains a substring in JavaScript. What are the different ways to do this? The indexOf() method is also case sensitive, and returns the index position of the first occurrence of the substring within the string. If the substring is not found, it returns -1. You can also include the position at which to begin searching the string for the substring. The default position is 0. charAt(index) – Returns a string representing the character at the specified index. If the index is out of range, it returns an empty string.
You can use JavaScript’s includes()
method to check whether a string contains a substring. This will return true
if the substring is found, or false
if not.
Consider the code example below:
const str = 'This is my example string!'; const substr = 'my'; console.log(str.includes(substr));
The above code would output true
.
Note that includes()
performs a case-sensitive search. To work around this, you can convert the string to lower case using toLowerCase()
as follows:
console.log(str.toLowerCase().includes(substr));
Furthermore, a position
can also be passed as an argument to specify the position at which to begin searching the string for the substring. The default position is 0
. If you want to begin searching at position 2
, you would write:
console.log(str.includes(substr, 2));
When you’re working with a JavaScript program, you might need to check whether a string contains a substring. A substring is a string inside another string.
Specifically, you might need to check whether a word contains a specific character or a specific set of characters.
Thankfully, there are a few quick ways to achieve this with JavaScript.
In this article, you will learn two different ways you can check if a string contains a substring using JavaScript methods.
Specifically, you will learn:
- How to use the built-in
includes()
JavaScript method. - How to use the built-in
indexOf()
JavaScript method.
Here is what we will cover in more detail:
- Syntax breakdown of the
includes()
method in JavaScript- How to check if a string contains a specific substring using the
includes()
method
- How to check if a string contains a specific substring using the
- Syntax breakdown of the
indexOf()
method in JavaScript- How to check if a string contains a specific substring using the
indexOf()
method
- How to check if a string contains a specific substring using the
- How to make a case-insensitive check with the
includes()
andindexOf()
methods
What Is The includes()
Method in JavaScript? includes()
Method Syntax Breakdown
The JavaScript includes()
method was introduced with ES6, and it is the most common and modern way of checking if a string contains a specific character or a series of characters.
The general syntax for the includes()
method looks something similar to this:
string.includes(substring, index);
Let’s break it down:
string
is the word you want to search through.includes()
is the method you call on the word you want to search through, which in this case isstring
.- The
includes()
method accepts two arguments — one is required, and one is optional. - The first argument the
includes()
method accepts issubstring
, and it is required.substring
is the character or the series of characters you are checking to see if they exist withinstring
. - The second argument the
includes()
method accepts isindex
, and it is optional.index
refers to the position from which the search forsubstring
will start — the default value is0
because indexing in programming languages begins at0
.
The return value is a Boolean value. A Boolean value can either be true
or false
depending on whether the substring is present or not within the string.
Something to keep in mind is that the includes()
method is case-sensitive.
How To Check if A String Contains A Specific Substring in JavaScript Using The includes()
Method
Let’s see an example of how the includes()
method works.
First, I created a variable that holds the string Hello, World
— this is the string I want to search through:
let string= "Hello, World";
Next, I created a variable with the substring Hello
— this is the substring I want to search for in the original string:
let string= "Hello, World";
let substring = "Hello";
Next, I will check if substring
is present within string
using the includes()
method and print the result to the console:
let string= "Hello, World";
let substring = "Hello";
console.log(string.includes(substring));
// output
// true
The return value was true
, meaning Hello
is present in the variable string
.
As mentioned in the section above, the includes()
method is case-sensitive.
See what happens when I change the value of substring
from Hello
to hello
:
let string= "Hello, World";
let substring = "hello";
console.log(string.includes(substring));
// output
// false
The return value, in this case, is false
, as there is no substring hello
with a lowercase h
. So, keep this in mind when working with the includes()
method — it differentiates between capital and lowercase letters.
Now, let’s see how to use the includes()
method with the second argument, index
.
As a reminder, the second argument specifies the position from which you want to start the search for the substring.
Let’s take the same string
variable from the previous examples:
let string= "Hello, World";
I will change the value of the substring
variable to H
:
let string= "Hello, World";
let substring = "H";
And I will specify the search of the substring to start from position 0
:
let string= "Hello, World";
let substring = "H";
console.log(string.includes(substring,0));
// output
// true
The return value is true
because the substring H
is at index position 0
within the string Hello, World
.
Remember, the first letter in a string has a position of 0
, the second a position of 1
, and so on.
What Is The indexOf()
Method in JavaScript? indexOf()
Method Syntax Breakdown
Similar to the includes()
method, the JavaScript indexOf()
method checks if a string includes a substring.
The general syntax for the indexOf()
method looks something similar to this:
string.indexOf(substring, index);
Let’s break it down:
string
is the word you want to search through.index0f()
is the method you call on the word you want to search through, in this case,string
.- The
includes()
method takes two arguments — one is required, and one is optional. - The first argument to the
indexOf()
method issubstring
, and it is required.substring
is the character or the series of characters you are searching for. - The second argument to the
indexOf()
method isindex
, and it is optional.index
refers to the position from which the search forsubstring
will start. The default value is0
because indexing in programming languages begins at0
.
The difference between the two methods is their return value.
The includes()
method returns a Boolean value (a value that is either true
or false
), whereas the indexOf()
method returns a number.
The number will be the starting index position where the substring you are looking for is found within the string. The return value will be -1
if the substring is not found in the string.
And just like the includes()
method, the indexOf()
method is case-sensitive.
How To Check if A String Contains A Specific Substring in JavaScript Using The indexOf()
Method
Let’s use the same example from earlier to see how the indexOf()
method works.
let string= "Hello, World";
let substring = "H";
There is the variable string
with the original string, and the variable substring
with the substring you are searching for.
let string= "Hello, World";
let substring = "H";
console.log(string.indexOf(substring));
// output
// 0
The output is 0
, which is the starting position of the substring you are searching for.
In this case, the value you were searching for was a single character.
Let’s change the value of substring
from H
to Hello
:
let string= "Hello, World";
let substring = "Hello";
console.log(string.indexOf(substring));
// output
// 0
The return value is again 0
since index0f()
returns the starting position of the substring you are looking for. Since the first character of the substring is located at the 0
position, indexOf()
returns 0
.
Now, let’s change the value of substring
from Hello
to hello
with a lowercase h
:
let string= "Hello, World";
let substring = "hello";
console.log(string.indexOf(substring));
// output
// -1
The return value is -1
. As mentioned earlier, index0f()
is case-sensitive, so it cannot find a substring hello
with lowercase h
. And when indexOf()
cannot find the given substring, it returns -1
.
Finally, you can specify the index value you want to start your search from by passing the second argument that indexOf()
accepts.
let string= "Hello, World";
let substring = "hello";
console.log(string.indexOf(substring,1));
// output
// -1
Say you want to start your search from position 1
. The return value is -1
since the starting position of the substring you are searching for is 0
. An exact match is not found at position 1
so indexOf()
returns -1
.
How To Make A Case-Insensitive Check With the includes()
and indexOf()
Methods
So far, you have seen that the includes()
and indexOf()
methods are case-insensitive.
But what happens when you want to perform a case-insensitive check?
To do a case-insensitive check and see if a substring is present within a string, you will need to convert both the original string and the substring to lowercase using the toLowerCase()
JavaScript method before calling one of the two methods.
Here is how you would do that using the includes()
method:
let string= "Hello, World";
let substring = "hello";
console.log(string.toLowerCase().includes(substring.toLowerCase()));
// output
// true
By default, the return value would have been false
because the original string contains an uppercase H
, whereas the substring contains a lowercase h
. After converting both strings to lowercase, you don’t have to worry about the capitalization of the original string and the substring you are searching for.
And here is how you would do the same thing using the indexOf()
method:
let string= "Hello, World";
let substring = "hello";
console.log(string.toLowerCase().indexOf(substring.toLowerCase()));
// output
// 0
By default, the return value would have been -1
because the original
string and the substring you are searching for have different cases.
After using the toLowerCase()
method, the indexOf()
method returns the staring position of the substring.
Conclusion
And there you have it! You now know how to check if a string contains a substring in JavaScript.
To learn more about JavaScript, head to freeCodeCamp’s JavaScript Algorithms and Data Structures Certification.
It’s a free, well-thought-out, and structured curriculum where you will learn interactively. In the end, you will also build 5 projects to claim your certification and solidify your knowledge.
Thanks for reading!
Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started