Как вернуть точные совпадения без учета регистра и оценить как true/false

Это проблема 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>

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

Будет ли hello dude приниматься как true, или вы хотите принимать hello только точное совпадение слов?

Shidersz 10.04.2019 21:02

Привет, чувак, это нормально, когда меня принимают за правду, но я не хочу, чтобы helloxyz принимали за правду.

user11341542 10.04.2019 21:09
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
47
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я считаю, что вы используете \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>

Спасибо за разъяснения! Я не понимал правильного использования метасимвола \b, так как он не был описан ни в одном из материалов, которые я изучал, но теперь я полностью его понимаю.

user11341542 10.04.2019 21:55

@AnthonyAlexander Я рад, что это помогло вам, пожалуйста, примите ответ, если он вам полезен.

Shidersz 10.04.2019 22:21

Другие вопросы по теме