正则表达式-匹配列表中的单词或表情符号-Node.js

时间:2018-12-18 01:35:34

标签: node.js regex

我正在开发具有匹配条件功能的机器人。它提供了可以与之匹配的文本和术语列表(单词/表情符号)。这是最有效的代码:

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 :(得分:0)

这样简单吗?

console.log(//i.test('foo'))