Я хочу проверить, находится ли переменная в каком-либо наборе слов. Например
'Guava'.match(/\b(apple|mango|orange)\b/ig);
Вышеупомянутое не соответствует, и это правильно.
'AppleA'.match(/\b(apple|mango|orange)\b/ig)
Это тоже не совпадает. Опять правильно.
'Apple.A'.match(/\b(apple|mango|orange)\b/ig)
Однако это возвращает совпадение, а это не то, что я хочу. Как это исправить?
Мне нужно совпадение, только если значение равно Apple OR apple OR mango OR mAngo и т. д.
Apple.A не присутствует в яблоках, манго или апельсинах. Оно не должно совпадать. Я хочу, чтобы Apple и яблоко совпадали. Поэтому я использую /i
Но . считается границей
Возможно, замените \b на каждом конце на ^ и $?
Обратите внимание, что ваш заголовок «Регулярное выражение для сопоставления, если значение с точкой находится в наборе слов», кажется, не согласуется со словами в вопросе, касающемся Apple.A: «Однако это возвращает совпадение, а это не то, что я хочу».
Извинения. Я изменил заголовок.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Попробуй это
'Apple.A'.match(/^(apple|mango|orange)$/ig)
Чтобы проверить, является ли строка одной из нескольких строк в JavaScript, без учета регистра, вы можете преобразовать строку в нижний регистр с помощью метода toLowerCase и передать ее методу includes массива из нескольких строк для проверки:
console.info(['apple', 'mango', 'orange'].includes('Apple.A'.toLowerCase()));
«Однако это возвращает совпадение, а это не то, что мне нужно». Что это значит? Почему вы думаете, что это не совпадет? Подсказка:
iделает регулярное выражение нечувствительным к регистру иbищет границы