【问题标题】:JavaScript regex for blacklisting words [duplicate]用于将单词列入黑名单的 JavaScript 正则表达式 [重复]
【发布时间】:2017-09-24 06:41:38
【问题描述】:

我正在尝试编写一个正则表达式来将某些单词列入黑名单。我可以创建像 /^(carrots|onions|corn)$/ 这样的白名单,但我如何将其转换为黑名单?

编辑:为了澄清,我将这个黑名单与整个字符串进行匹配。例如应该允许"corndog"。我想要 blacklistArray.indexOf(word) === -1 的正则表达式等价物

【问题讨论】:

  • 谢谢——这相似但不同。如果可能,请查看已澄清的问题并取消标记为重复。
  • @wiktor-stribiżew 你能重新打开吗?这不是重复的。
  • @ryanve:骗子。在那里查看我的答案,(匹配所有内容,但)a string equal to some string 部分。您的解决方案:^(?!(?:carrots|onions|corn)$) - 它将匹配任何不等于 carrotsonoinscorn 的字符串。
  • @WiktorStribiżew Mine 是关于匹配整个单词而不是子单词。我的同事发现正确的模式是 gist.github.com/ryanve/004dcaecf1fe4835345385b4d1500c78 你的不同,而不是我在问题中要求的。再次,请重新打开,因为这对社区很有价值。

标签: javascript regex regex-negation blacklist


【解决方案1】:

使用负前瞻:

^(?!.*(?:carrots|onions|corn))

【讨论】:

  • 感觉很接近,但似乎也将部分匹配列入黑名单。我只想将完全匹配列入黑名单。 /^(?!.*(?:carrots|onions|corn))/.test('corndog') 是假的,我希望它是真的以允许corndog。
猜你喜欢
  • 2021-05-06
  • 1970-01-01
  • 2011-11-04
  • 2016-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-17
  • 1970-01-01
相关资源
最近更新 更多