Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式与列表不完全匹配_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式与列表不完全匹配

Javascript 正则表达式与列表不完全匹配,javascript,regex,Javascript,Regex,我需要为html5输入模式属性“不是以下项目之一”编写一个正则表达式 我该怎么做 ab 阿巴 ba 进入一个模式,匹配任何不完全属于这些单词的内容 例如,我想要的是 ab-不匹配 abab-匹配 bab-匹配 b-匹配 ab a-匹配 换句话说,我想要(javascript中)的regex等价物 您可以将负前瞻与锚定一起使用: ^(?!(?:(aba|ab|ba)$)).* (?!(?:(aba | ab | ba)$)是一种负前瞻,如果输入包含准确的单词ab或aba或ba则会导致匹

我需要为html5输入模式属性“不是以下项目之一”编写一个正则表达式

我该怎么做

  • ab
  • 阿巴
  • ba
进入一个模式,匹配任何不完全属于这些单词的内容

例如,我想要的是

  • ab-不匹配
  • abab-匹配
  • bab-匹配
  • b-匹配
  • ab a-匹配
换句话说,我想要(javascript中)的regex等价物


您可以将负前瞻与锚定一起使用:

^(?!(?:(aba|ab|ba)$)).*


(?!(?:(aba | ab | ba)$)
是一种负前瞻,如果输入包含准确的单词
ab
aba
ba

则会导致匹配失败。只需反转过程,不要搜索不在列表中的模式。搜索它们,如果你发现了一些,告诉用户它是不正确的。更好的是,既然你找到了一些东西,你就可以告诉他哪里出了问题;所以,如果你不告诉我们你将用哪种语言实现这个正则表达式,我们就不能给你一个肯定对你有用的答案。既然你提到了JavaScript,我就用它来标记它;但是要认识到,你可能会因为轻率地回答你将在中使用该正则表达式的语言而遭到否决。@GeorgeStocker这是公平的,就像我在(删除的)评论中所说的,我没有用js标记它,因为我认为答案足够直截了当,不同的口味并不重要。另外,我会注意到这里技术上是html,而不是js。
模式
属性使用javascript引擎,但将其分类为javascript并不完全适合我。哦,我明白了-你使用
aba?
让我感到困惑。使用
/^(?。*\b(ab | aba | ba)\b.*$/g
是的,我刚刚将
ab | aba
缩短为
aba?
现在看这个,它实际上不太正确。请参阅我的编辑。基本上,它不匹配它应该匹配的
ab a
,因为这不是确切的字符串。我设法将它简化为
^(?(?:(aba | ab | ba)$)。
^(?!(?:(aba|ab|ba)$)).*