匹配没有 << 或 ]] 的表达式
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]));
}
仅当字符串中不存在 <<
或 >>
或 ]]
或 [[
时,我才需要匹配模式。
如果出现这些特殊字符中的任何一个,则匹配项应为零,否则应匹配。
例如,我有一个表达式 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]));
}