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