I want to check is some text is in a string for instance i have a string
str = "car, bycicle, bus"
and I have another string
str2 = "car"
I want to check if str2 is in str.
I am a newbie in javascript so please bear with me :)
Regards
if(str.indexOf(str2) >= 0) {
...
}
Or if you want to go the regex route:
if(new RegExp(str2).test(str)) {
...
}
However you may face issues with escaping (metacharacters) in the latter, so the first route is easier.
indexOf returns the index of the beginning of str2 in str. returns -1 if it isn't in the array.str.lastIndexOf(str2) >= 0; this should work. untested though.
let str = "car, bycicle, bus";
let str2 = "car";
console.log(str.lastIndexOf(str2) >= 0);
lastIndexOf instead of just indexOf?indexOf to cause trouble?var items = str.split(",") into an array then iterate through the array items checking for items[i] == str2....var x = ',,' x.indexOf(x) == 0 x.lastIndexOf(x) == 1, you'd get two different results, and depending on the logic down the line you could have some issues.Use the builtin .includes() string method to check for the existence of sub-string.
It return boolean which indicates if the sub-string included or not.
const string = "hello world";
const subString = "world";
console.log(string.includes(subString));
if(string.includes(subString)){
// SOME CODE
}
Please use this :
var s = "foo";
alert(s.indexOf("oo") > -1);
> instead of >=?This function will tell you if the substring is in the string and how many times.
const textInString = (wordToFind, wholeText) => {
const text = new RegExp(wordToFind, 'g');
const occurence = wholeText.match(text) ?? [];
return [occurence.length > 0, occurence.length]
}
console.log(textInString("is", "This cow jumped over this moon"))
If you just want to check substring in a string you can use indexOf but if you want to check if the word is in the string or not, the other answers might not work correctly for example:
str = "carpet, bycicle, bus"
str2 = "car"
What you want car word is found not car in carpet
if(str.indexOf(str2) >= 0) {
// Still true here
}
// OR
if(new RegExp(str2).test(str)) {
// Still true here
}
So you can improve the regex a bit to make it work
str = "carpet, bycicle, bus"
str1 = "car, bycicle, bus"
stringCheck = "car"
// This will false
if(new RegExp(`\b${stringCheck}\b`).test(str)) {
}
// This will true
if(new RegExp(`\b${stringCheck}\b`,"g").test(str1)) {
}
Stringmethods: developer.mozilla.org/en/JavaScript/Reference/Global_Objects/…