Как вернуть точные регистронезависимые совпадения и оценить как true / false - PullRequest
1 голос
/ 10 апреля 2019

Это 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>

Я хочу получить точные совпадения для слов, а не просто строку.

1 Ответ

1 голос
/ 10 апреля 2019

Я полагаю, что вы на своем пути используете \b Границы слов , но вы неправильно используете их. Если вы читаете документы, вам нужно обернуть 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...