2017-03-26 22 views
-2

<<または>>または]]または[[が文字列に存在しない場合にのみパターンを一致させる必要があります。<<<または]の式と一致する

これらの特殊文字のいずれかが存在する場合、一致するものは0でなければなりません。

例えば、Stackoverflowのように一致するものが返されますが、もし私がStack]]over<<flowを持っていれば真の応答を得るべきではありません。次のパターンは、残念ながら動作しません:

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

答えて

1

ありがとう次の正規表現を使用して、結果を否定:ここ

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

は実際の例です:

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

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


あなたは、あなたも否定先読みを使用することができます(角のng-patternを使用したときのような)結果を否定することができない場合:ここでは

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

は実際の例です:

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

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

+0

こんにちは、これをHTML入力のng-patternに使用する必要があります。 javascriptまたは角度js.how!regexを使用する代わりにng-patternで否定を使用しますか?クイックソリューションありがとうございました – user4895544

+0

@ user4895544さて、私は答えを更新しました。 –

+0

それは魅力のように動作します。ありがとうございました :) – user4895544

関連する問題