Я работаю над ботом, у которого есть функция соответствия терминов.Он содержит текст и список терминов, с которыми он может соответствовать (слова / эмодзи).Вот мой код, который в основном работает:
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
}
Это работает.Но моя проблема в том, что если мой соответствующий термин - эмодзи, и этот эмодзи привязан к другому слову, то это регулярное выражение не найдет его.Кто-нибудь знает возможное решение?