首页 > 解决方案 > indexOf() 在错误的情况下显示“-1”

问题描述

我正在尝试使用 indexOf() 来检查一个字符串是否包含另一个字符串,如果是这样,它将触发不同的 if 语句下面是代码和记录的结果:

  var  str2="Handrail Ext";
  if (fixing.toString().indexOf(str2) === -1 || fixingDig.toString().indexOf(str2) === -1) {
    console.log("$FixingDig: " + fixingDig + " $Fixing: " + fixing + "InfexOf Result: " + fixing.toString().indexOf(str2) + ".");
    $('.results #handrails').val(new_posts);
    $('.wpcf7-form input[name=hidden-post-handrails]').val(new_posts);
  } else {
    console.log("$FixingDig: " + fixingDig + " $Fixing: " + fixing + "InfexOf Result: " + fixing.toString().indexOf(str2) + ".");
    $('.results #handrails').val(0);
    $('.wpcf7-form input[name=hidden-post-handrails]').val("0");
  }

控制台日志

页面加载:

$FixingDig: No Fixing. $Fixing: No Fixing. IndexOf Result: -1.

选择固定:

$FixingDig: Bolt Down (610mm). $Fixing: No Fixing. IndexOf Result: -1.

选择用扶手固定:

$FixingDig: Bolt Down (760mm + Handrail Ext.). $Fixing: No Fixing. IndexOf Result: -1.

标签: javascriptindexof

解决方案


检查使用> -1而不是=== -1

var  str = "Handrail Ext";

var text1 = "bla and bla Handrail Ext bla"
var text2 = "bla and bla Handrail bla"

console.log(text1.indexOf(str))
console.log(text2.indexOf(str))


推荐阅读