В настоящее время у меня есть граничное регулярное выражение, которое соответствует мирам
const trigger = 'foo1 foo2'
const rx = new RegExp(`\\b${trigger}\\b`, 'i');
return rx.test(text);
Это соответствует следующим случаям:
foo1 foo2 <-- exact match
bar foo1 foo2 <-- end of sentence
foo1 foo2 bar <-- beginning of sentence
, а не
barfoo1 foo2
foo1 foo2bar
barfoo1 foo2bar
Это точноповедение, которое я хочу для стандартной строки
Однако, когда trigger
становится #foo
, это не работает, потому что #
недопустимо для границы слова.
Регулярное выражениеконтролируется моим сервером, но триггер контролируется пользователем.
Это проблема, только если строка начинается с хэштега, поэтому что-то вроде foo1 #foo2
все еще работает.Я всегда мог бы удалить хэштег в начале.
Как заставить регулярное выражение поддерживать как слова, так и хэштеги?