仅当字符串中不存在<<
or>>
或]]
or时,我才需要匹配模式。[[
如果存在这些特殊字符中的任何一个,则匹配项应为零,否则应匹配。
例如,我有一个Stackoverflow
应该作为匹配返回的表达式,但如果有,Stack]]over<<flow
我不应该得到真实的响应。不幸的是,以下模式不起作用:
/^(\[\[)|(\]\])|(\<\<)|(\>\>)
谢谢
仅当字符串中不存在<<
or>>
或]]
or时,我才需要匹配模式。[[
如果存在这些特殊字符中的任何一个,则匹配项应为零,否则应匹配。
例如,我有一个Stackoverflow
应该作为匹配返回的表达式,但如果有,Stack]]over<<flow
我不应该得到真实的响应。不幸的是,以下模式不起作用:
/^(\[\[)|(\]\])|(\<\<)|(\>\>)
谢谢
使用以下正则表达式并否定结果:
<<|>>|\]\]|\[\[
这是一个活生生的例子:
var regex = /<<|>>|\]\]|\[\[/;
var strings = [
"Stackoverflow",
"Stack]]over<<flow"
];
for(var i=0; i<strings.length; i++) {
console.log(!regex.test(strings[i]));
}
如果你不能否定结果(比如使用 Angular 时ng-pattern
),你也可以使用否定的前瞻:
^((?!<<|>>|\]\]|\[\[).)*$
这是一个活生生的例子:
var regex = /^((?!<<|>>|\]\]|\[\[).)*$/;
var strings = [
"Stackoverflow",
"Stack]]over<<flow"
];
for(var i=0; i<strings.length; i++) {
console.log(regex.test(strings[i]));
}