2016-05-04 11 views
1

ich einen regulären Ausdruck in meinem Grails config (i?):Groß- und Kleinschreibung regex in Grails Config

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]*$/ 

ich das Wort QWERTY in der Regex zu beschränken. Ich habe versucht, ein (? I) hinzuzufügen, um es case insensitive. * (? I) qwerty zu machen, aber aus irgendeinem Grund verursacht die Groß-und Kleinschreibung Regex einen Fehler mit dem Javascript, das von der Seite verwendet wird.

Wo sollte ich diesen Fall unempfindlich Regex? Ich habe auch versucht, es zu entkommen (? \ I), aber es verursacht immer noch einen Fehler mit dem Javascript auf der Seite verwendet. Kann jemand erklären warum?

+0

verwenden '. * (? I) qwerty (? - i)' – rock321987

Antwort

1

Sie können Inline-Regex-Modifikatoren nicht in JavaScript verwenden. Darüber hinaus können Sie nicht jeden Geschmack mit Konstrukt einen Teil des Musters case-insensitive machen. Somit kann, was Sie tun, ist etwas wirklich begrenzt: nur Zeichenklassen verwenden, um beide Varianten Fall jedes Wort an:

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

Siehe rexegg.comRegex Modifiers—Turning them On Referenz:

Inline Modifier (?i) In .NET , PCRE (C, PHP, R ...), Perl, Python, Java und Ruby (, aber nicht JavaScript), können Sie den Inline-Modifikator (?i) verwenden, zum Beispiel in (?i)cat. Weitere Details zu drei zusätzlichen Features (nicht in Python verfügbar) finden Sie im Abschnitt zu Inline-Modifikatoren: Aktivieren Sie diese Option in der Mitte der Zeichenfolge, indem Sie sie mit (?-i) ausschalten oder nur auf den Inhalt einer Nicht-Capture-Gruppe mit (?i:foo)

anwenden

wird nun eine alternative /i als (?i) zu verwenden verwendet XRegExp library:

Wenn eine Regex zu schaffen, es ist in Ordnung Flags in einem Modus-Modifikator enthalten, die auch über die separate Flags Argument vorgesehen sind. Zum Beispiel ist XRegExp('(?s).+', 's') perfekt gültig.

Es scheint jedoch, es nicht möglich ist, einen Teil des Musters Groß- und Kleinschreibung zu machen:

Kompatibilität mit anderen Regex-Varianten: Einige Regex-Varianten die Verwendung mehrerer Modusmodifikatoren überall unterstützen in einem Muster, und ermöglichen erweiterte Syntax für Scharfschalten Flags über (?-i), gleichzeitig setzen und Scharfschalten Flags über (?i-m), und aktivieren Flags für Untermuster nur über (?i:…). XRegExp tut nicht unterstützt diese erweiterten Optionen *.

+1

danke !!!!!!! – SpongebobJunior

Verwandte Themen