У меня есть массив ключевых слов, и я хочу знать, найдено ли хотя бы одно из ключевых слов в некоторой строке, которая была отправлена. Я также хочу быть абсолютно уверенным, что это ключевое слово, которое было сопоставлено, а не то, что очень похоже на слово.Проблема со словом-границей ( b)
Скажите, например, что наши ключевые слова: [English, Eng, En]
, потому что мы ищем некоторые варианты английского языка.
Теперь скажите, что вход пользователя i h8 eng class
или что-то в равной степени провокационное и неграмотное - тогда необходимо сопоставить eng
. Он также должен не соответствовать слову вроде england
или какой-то странной вещи chen
, хотя у него есть бит en
.
Итак, в моем бесконечном отсутствии мудрости я полагал, что я мог бы сделать что-то вдоль линий это для того, чтобы соответствовать одному из моих элементов массива с входом:
.match(RegExp('\b('+array.join('|')+')\b','i'))
С мышлением, что регулярным выражение будут искать совпадения из массива, теперь представленные как (English|Eng|En)
, а затем посмотрите, были ли границы слова с нулевой шириной с обеих сторон.
+1 заставила меня смеяться – cambraca