Check if text is in a string
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 newb开发者_开发百科ie 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.
ES5
if(str.indexOf(str2) >= 0) {
...
}
ES6
if (str.includes(str2)) {
}
str.lastIndexOf(str2) >= 0;
this should work. untested though.
let str = "car, bycicle, bus";
let str2 = "car";
console.log(str.lastIndexOf(str2) >= 0);
Please use this :
var s = "foo";
alert(s.indexOf("oo") > -1);
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
}
You can use this:
'a nice string'.includes('nice')
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)) {
}
精彩评论