indexOf用于多个选项

时间:2016-12-11 08:51:55

标签: javascript jquery

假设我使用var content = this.innerHTML获得以下内容:

w here&nbsp;</div>

使用indexOf(或其他方式),我想检查第一个有“Space”,“&lt;”的位置或“&amp; nbsp”。

在这种情况下,它将是1(在“w”之后)。

我感到困惑的是,我如何检查具有这三种选择之一的第一个位置?我是否使用Do...while检查个别“选项”?

2 个答案:

答案 0 :(得分:2)

您可能正在寻找Regular Expression (Regex)String#search方法。正则表达式有点学习,但我会解释这个示例代码。

您可以使用方括号表示一组字符,例如var startMedicine = new Date(startdate); var stopMedicine = new Date(stopdate); while(startMedicine <= stopMedicine){ console.log(startdate) } 表示“匹配空格或小于号”。 如果要匹配一种模式或另一种模式,可以使用管道[ <]来分隔可能性,这就是如何考虑匹配非中断空格HTML实体。

|

答案 1 :(得分:1)

您可以使用带有替换|)的正则表达式,这意味着“匹配其中一项”。这也会告诉你你发现了什么,如果它有用:

function check(str) {
  var m = / |<|&nbsp;/.exec(str);
  if (!m) {
    console.log("Not found in '" + str + "'");
    return;
  }
  console.log("'" + m[0] + "' found at index " + m.index + " in '" + str + "'");
}

check("w here&nbsp;</div>");
check("where&nbsp;</div>");
check("where</div>");