我想检查一些文本是否在字符串中,例如我有一个字符串
str = "car, bycicle, bus"
我有另一个字符串
str2 = "car"
我想检查str2是否在str。
我是javascript的新手所以请耐心等待:)
此致
答案 0 :(得分:25)
if(str.indexOf(str2) >= 0) {
...
}
或者,如果你想进入正则表达式路线:
if(new RegExp(str2).test(str)) {
...
}
但是,您可能会遇到后者中的转义(元字符)问题,因此第一条路线更容易。
答案 1 :(得分:2)
str.lastIndexOf(str2)> 0;这应该工作。虽然未经测试。
答案 2 :(得分:2)
ES5
if(str.indexOf(str2) >= 0) {
...
}
ES6
if (str.includes(str2)) {
}
答案 3 :(得分:1)
请使用此:
var s = "foo";
alert(s.indexOf("oo") > -1);
答案 4 :(得分:0)
使用内置的.includes()
字符串方法检查子字符串是否存在。
返回布尔值,指示是否包含子字符串。
const string = "hello world";
const subString = "world";
console.log(string.includes(subString));
if(string.includes(subString)){
// SOME CODE
}
答案 5 :(得分:0)
如果只想检查字符串中的子字符串,可以使用indexOf
,但是如果要检查单词是否在字符串中,则其他答案可能无法正常工作,例如:
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
}
因此您可以对正则表达式进行一些改进以使其正常工作
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)) {
}