您可以使用JavaScript条件正则表达式语句吗?

时间:2019-04-19 08:52:30

标签: javascript regex

我对正则表达式有基本的了解。

我使用javascript正则表达式过滤一些实时聊天评论,我的某些陈述停止了合法的讨论。

这是因为不允许您在公开论坛中不讨论某些事情,但是您应该可以问它们多少钱。

例如,我使用以下内容过滤掉包含以下单词的评论:

/(?=.*apple)|(\spear\s)|(banana)|(rasberry)/i

是否可以创建带有条件元素的 regex 语句?

总之,如果字符串包含某些单词,但如果包含其他单词,则不希望过滤该字符串,例如:“多少”或“费用”?

1 个答案:

答案 0 :(得分:3)

我不确定是否可以在一个正则表达式中进行操作,但是您可以按照以下方式将其拆分:

// Check if regex matches
const containsWords = (str, reg) => {
  return reg.test(str)
}

const filteredRegex = /apple|spear|banana|rasberry/g
const allowedRegex = /how much|cost/g

// If the amount of matches is bigger than 0, check if it contains allowed words
if (containsWords(comment, filteredRegex)) {
  if (containsWords(comment, allowedRegex)) {
    // Allowed
  } else {
    // Not allowed
  }
}