2016-05-04 7 views
1

をconfigコンGrailsの中で、私は私のGrailsの設定で正規表現を持って大文字小文字を区別しない正規表現を実装します。

password.regex = /^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?!.*0123|.*1234|.*2345|.*3456|.*4567|.*5678|.*6789|.*3210|.*4321|.*5432|.*6543|.*7654|.*8765|.*9876|.*1122|.*2233|.*3344|.*4455|.*5566|.*6677|.*7788|.*8899|.*9900|.*0011|.*1100|.*qwerty)[0-9a-zA-Z]*$/ 

私は正規表現のワードQWERTYを制限しています。私は(?i)を大文字小文字を区別しないように追加しようとしました*(?i)qwertyしかし何らかの理由で大文字小文字を区別しない正規表現はページで使用されるjavascriptでエラーを引き起こします。私はこの大文字小文字を区別しない正規表現を置くべき

?私もそれをエスケープしようとしましたが(?\\ i)、それでもページに使用されているjavascriptでエラーが発生します。なぜ誰かが説明できますか?

+0

'。*(?i)qwerty(? - i)' – rock321987

答えて

1

あなたはJavaScriptでインライン正規表現修飾子を使用することはできません。さらに、すべての味が(?i:...)構造で大文字と小文字を区別しないパターンの一部を作っているわけではありません。ただ、各単語の両方のケースバリアントを指定するには、文字クラスを使用します:このように、何を行うことができますことは、本当に限らものです.NETで

インライン修飾子(?i)

.*[qQ][wW][eE][rR][tT][yY] 

rexegg.comRegex Modifiers—Turning them Onリファレンスを参照してください。 、PCRE(C、PHP、R ...)、Perl、Python、Java、Ruby(、JavaScriptはなど)では、(?i)catなどのインライン修飾子(?i)を使用できます。文字列の中でオンにし、(?-i)で無効にするか、またはキャプチャしていないグループのコンテンツにのみ適用する、という3つの追加機能について詳しくは、インライン修飾子に関するセクションを参照してください。

さて、 (?i)として /iを使用する代わりに XRegExp libraryを使用している

正規表現を作成する場合、それはまた別のflags引数を介して提供されているモード修飾子のフラグを含めても大丈夫です。たとえば、XRegExp('(?s).+', 's')は完全に有効です。他の正規表現のフレーバーと

互換性::

しかし、パターン大文字と小文字を区別しないの一部を行うことは不可能であると思われるいくつかの正規表現のフレーバーは、どこにでも複数のモード修飾子の使用をサポートパターンで、そして同時に設定及び設定解除フラグを(?i-m)介してのみ(?i:…)介してサブパターンのフラグを有効に、(?-i)介して設定解除フラグの拡張構文を可能にします。 XRegExpは、これらの拡張オプション*をサポートしていませありません。

+1

ありがとうございます!!!!!!! – SpongebobJunior