我正在开发具有匹配条件功能的机器人。它提供了可以与之匹配的文本和术语列表(单词/表情符号)。这是最有效的代码:
function matchTerms (terms, text) {
// > /(^|[^\w])/i.test('')
// < true
// > /(^|[^\w])/i.test('foo')
// < false
// > /(^|[^\w])/i.test('foo ')
// < true
const matches = text.match(new RegExp(`(^|[^\\w])(${terms.join('|')})([^\\w]|$)`, 'i'))
return matches ? matches[2] : null
}
这有效。但是我的问题是,如果我的匹配词是一个表情符号,并且该表情符号附加到另一个单词上,则此正则表达式将找不到它。有人知道可能的解决方案吗?
答案 0 :(得分:0)
这样简单吗?
console.log(//i.test('foo'))