Это проблема 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>
Я хочу получить точные совпадения слов, а не просто строку.
Привет, чувак, это нормально, когда меня принимают за правду, но я не хочу, чтобы helloxyz принимали за правду.
Я считаю, что вы используете \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, так как он не был описан ни в одном из материалов, которые я изучал, но теперь я полностью его понимаю.
@AnthonyAlexander Я рад, что это помогло вам, пожалуйста, примите ответ, если он вам полезен.
Будет ли
hello dude
приниматься какtrue
, или вы хотите приниматьhello
только точное совпадение слов?