我目前有一个匹配单词的边界正则表达式
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
这正是我想要的标准字符串行为。
但是,当触发器变成#foo
时,它不起作用,因为#
不是单词边界的有效字符。
正则表达式由我的服务器控制,但触发器由用户控制。
只有在字符串以井号开头时才会出现此问题,所以类似foo1 #foo2
的内容仍然有效。我可以始终删除开头的井号。
如何使正则表达式同时支持单词和井号?