匹配没有 << 或 ]] 的表达式

Match an expression with no << or ]]

仅当字符串中不存在 <<>>]][[ 时,我才需要匹配模式。

如果出现这些特殊字符中的任何一个,则匹配项应为零,否则应匹配。

例如,我有一个表达式 Whosebug,它应该 return 作为匹配,但如果我有 Stack]]over<<flow,我应该不会得到真实的响应。不幸的是,以下模式不起作用:

/^(\[\[)|(\]\])|(\<\<)|(\>\>)

谢谢

使用以下正则表达式并对结果求反:

<<|>>|\]\]|\[\[

这是一个活生生的例子:

var regex = /<<|>>|\]\]|\[\[/;
var strings = [
  "Whosebug",
  "Stack]]over<<flow"
];

for(var i=0; i<strings.length; i++) {
  console.log(!regex.test(strings[i]));
}


如果你不能否定结果(比如使用Angular的ng-pattern),你也可以使用否定的前瞻:

^((?!<<|>>|\]\]|\[\[).)*$

这是一个活生生的例子:

var regex = /^((?!<<|>>|\]\]|\[\[).)*$/;
var strings = [
  "Whosebug",
  "Stack]]over<<flow"
];

for(var i=0; i<strings.length; i++) {
  console.log(regex.test(strings[i]));
}