首页 > 解决方案 > 如何返回不区分大小写的精确匹配并评估为真/假

问题描述

这是一个JavaScript问题...

我正在尝试返回不区分大小写的精确匹配项。例如,如果我"yo"在输入框中输入,我希望它返回 as true,这在我当前的方法中是这样做的,但它也会返回以(ie )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>

我想获得单词的完全匹配,而不仅仅是一个字符串。

标签: javascriptregex

解决方案


我相信你在使用\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>


推荐阅读