Regex - сопоставить слово или смайлик из списка - nodejs - PullRequest
0 голосов
/ 18 декабря 2018

Я работаю над ботом, у которого есть функция соответствия терминов.Он содержит текст и список терминов, с которыми он может соответствовать (слова / эмодзи).Вот мой код, который в основном работает:

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
}

Это работает.Но моя проблема в том, что если мой соответствующий термин - эмодзи, и этот эмодзи привязан к другому слову, то это регулярное выражение не найдет его.Кто-нибудь знает возможное решение?

1 Ответ

0 голосов
/ 18 декабря 2018

Как же просто, как это?

console.log(/?/i.test('foo?'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...