【问题标题】:Looking for multiple words js Jquery寻找多个单词js Jquery
【发布时间】:2013-04-04 07:42:15
【问题描述】:

我正在尝试编写一个简单的 if 语句来查看一个单词是否与其他单词匹配。当我只使用一个单词而不是像下面这样的多个单词时,我可以让它工作。当我使用if (||)。 我想使用“包含”,但看不到如何将其与 var 一起使用

另外:("Woven || Main") 是一个变量,所以我需要这部分保持在一起。

var option="Woven || Main";

这不起作用:

var titleIs = "Knit";

if (titleIs.match("Woven || Main")) {

    alert("Main")

}

这行得通:

var titleIs = "Knit";

if (titleIs.match("Woven")) {

    alert("Main")

}

【问题讨论】:

    标签: javascript jquery words


    【解决方案1】:
    var titleIs = "Knit";
          if(titleIs.match("Woven") || titleIs.match("Main")){
          alert("Main")
    }
    

    【讨论】:

    • ("Woven || Main") 是一个 var,所以我需要这部分保持在一起。 var option="Woven || Main";
    【解决方案2】:

    而不是使用 ||在字符串之间使用 ||在比赛调用之间。

    var titleIs = "Knit";
    if(titleIs.match("Woven") || titleIs.match("Main")){
       alert("Main")
    }
    

    【讨论】:

      【解决方案3】:
      var words = ['Woven', 'Main'];
      var regex = new RegExp('^(' + words.join('|') + ')$');
      
      if (regex.test(titleIs)) {...}
      

      【讨论】:

      【解决方案4】:

      您可以使用单词数组和Array.prototype.indexOf 来检查数组是否包含您的标题。

      var words = ["Woven", "Main"];
      var titleIs = "Knit";
      
      function contains(arr, str) {
          return !!~arr.indexOf(str)
      }
      console.log(contains(words, titleIs)); //false
      

      注意:

      Array.prototype.reduce 是 ECMAScript 5 的补充;因此,它可能不会出现在该标准的其他实现中。

      要支持旧版浏览器,可以使用 shim MDN 提供的

      这是JSBin上的一个例子

      【讨论】:

        猜你喜欢
        • 2014-08-13
        • 2015-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多