0

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

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

var option="编织 || 主要";

这不起作用:

var titleIs = "Knit";

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

    alert("Main")

}

这有效:

var titleIs = "Knit";

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

    alert("Main")

}
4

4 回答 4

1
var titleIs = "Knit";
      if(titleIs.match("Woven") || titleIs.match("Main")){
      alert("Main")
}
于 2013-04-04T07:45:29.590 回答
1

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

var titleIs = "Knit";
if(titleIs.match("Woven") || titleIs.match("Main")){
   alert("Main")
}
于 2013-04-04T07:45:42.997 回答
0
var words = ['Woven', 'Main'];
var regex = new RegExp('^(' + words.join('|') + ')$');

if (regex.test(titleIs)) {...}
于 2013-04-04T07:47:16.757 回答
0

您可以使用单词数组并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 的补充;因此,它可能不会出现在该标准的其他实现中。

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

这是一个关于JSBin的例子

于 2013-04-04T07:59:46.143 回答