检查文本是否在字符串中

时间:2011-07-07 17:11:13

标签: javascript

我想检查一些文本是否在字符串中,例如我有一个字符串

str = "car, bycicle, bus"

我有另一个字符串

str2 = "car"

我想检查str2是否在str。

我是javascript的新手所以请耐心等待:)

此致

6 个答案:

答案 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)) {
  
}