如何检查字符串是否包含另一个字符串的文本?

时间:2016-02-12 06:07:45

标签: javascript

我有这个javascript代码:

if (fromState.name == "home.subjects.subject.exams.exam.tests.test" &&
    toState.name == "home.subjects.subject.exams.exam.tests") {
       tes.test.current = false; 
       tes.test = null;               
}

我知道我可以在这里做一个简单的比赛:

toState.name == "home.subjects.subject.exams.exam.tests"

检查toState名称。

但我如何检查toState.name 包含字符串:

"home.subjects.subject.exams.exam.tests" ?

例如toStateName可以是:

"home" or "home.access" or "home.city"

6 个答案:

答案 0 :(得分:4)

您正在寻找indexOf

var x = "home.subjects.subject.exams.exam.tests";
console.log(x.indexOf('subjects'));     // Prints 5
console.log(x.indexOf('state'));        // Prints -1

答案 1 :(得分:1)

  

但我怎么能检查toState.name不包含字符串:

var strArr = "home.subjects.subject.exams.exam.tests.test".split(".");
var name = "home.subjects.subject.exams.exam.tests";
var contains = false;

strArr.reduce( function(prev, current){

   if ( name.indexOf( current ) != -1 )
   {
      contains = true;
   } 

   return prev + "." + current;

} );

if (contains)
{
   alert( "yes it contains" );
}
else
{
   alert( "Nope" );
}

答案 2 :(得分:1)

var include_flag = toState.name.includes("home.subjects.subject.exams.exam.tests");
return !include_flag;

使用JS include方法可能是最好的选择。我回答这个问题有点晚了,但是我只是自己自己仔细研究了一下,并在对代码摆弄一些之后得出了这个答案。如果toState.name 包括给定的字符串,则此代码将返回true。

希望这可以帮助任何人搜索我遇到的相同问题!

答案 3 :(得分:0)

您可以使用int main() { int array[] = {6,3, 4, 6, 2}; int *sizes = array; cout << sizeof(sizes); // output is 8 } 并将其取反。

includes

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes

答案 4 :(得分:0)

原始问题包含一个“?”三元运算符,因此这里是使用三元运算符的方法。

假设您正在玩扑克游戏,并且有彩虹翻牌。现在,假设您想从翻牌圈中脱掉西装。

let flop = "3h Js 9c";
let missingSuit = !flop.includes("c") ? "c" : 
                  !flop.includes("d") ? "d" : 
                  !flop.includes("h") ? "h" : "s";
// missingSuit equals "d"

答案 5 :(得分:0)

对我来说,jQuery版本是1.10.2

要检查字符串中的子字符串,可以使用 includes 这样的jQuery函数

var sub_str = "find"
var main_str = "find me if you can"
result = main_str.includes(sub_str)
if result{
  * Stuff todo if result found
}else{
  * Stuff todo if result not found
}

result true; // if you have sub string finder method separately and calling it from somewhere else.