如何返回精确的不区分大小写的匹配并计算为true / false

问题描述 投票:1回答:1

这是一个JavaScript问题......

我试图返回确切的不区分大小写的匹配。例如,如果我在输入框中输入"yo",我希望它以true的形式返回,它在我当前的方法中返回,但它也会返回true,用于结束或以"yo"开头的任何内容(即your)。我仍然希望像"Yo!""yo, what's up"这样的案件返回true

我试过startsWith()endsWith(),但我不确定该去哪里...

<!DOCTYPE html>
<html>
<body>

  <input type="text" id="input1">
  <button type="submit" onclick="myFunction()">Test</button>
  <p id="demo"></p>

  <script>
    function myFunction() {
      var arr1 = [/hello/i, /\bhi/i, /\bhey/i, /yo/i];
      var b = document.getElementById("input1").value;
      document.getElementById("demo").innerHTML = arr1.some(regexp => regexp.test(b));
    }
  </script>

</body>
</html>

我希望得到单词的完全匹配,而不是只是一个字符串。

javascript regex
1个回答
1
投票

我相信你在使用\b Word Boundaries的方式,但你对它们的使用不正确。如果你阅读文档,你需要用word元字符包装你想要匹配的\b,比如\bhello\b。试试下一个例子:

function myFunction() {
  var arr1 = [/\bhello\b/i, /\bhi\b/i, /\bhey\b/i, /\byo\b/i];
  var b = document.getElementById("input1").value;
  document.getElementById("demo").innerHTML = arr1.some(regexp => regexp.test(b));
}
<input type="text" id="input1">
<button type="submit" onclick="myFunction()">Test</button>
<p id="demo"></p>
© www.soinside.com 2019 - 2024. All rights reserved.