2010-11-28 11 views
3

ein Textfeld ist ein Teil meiner Form. Der Benutzer muss einen kleinen Text schreiben und ich möchte diesen Text validieren. Denn jetzt bin ich mit den folgenden regulären Ausdruck:Regex für die Beschreibung Form Eingabe

/^[0-9a-zA-ZäöüÄÖÜ_\-']+$/ 

Obwohl ich die ÄÖÜäöü in der Regex erwähnt haben sie alle Wörter mit äöü behandelt .. als ungültig. Außerdem akzeptiert es keine leeren Räume.

Irgendwelche Ideen, wie man die Regex verbessern kann?

Antwort

5

Verwenden Sie eine Unicode-aware regex:

/[\pL\pN_\-]+/ 
+0

Vielleicht möchten Sie '\ p {Pd}' anstelle von '-' verwenden (wahrscheinlich), und Sie könnten' \ p {Pc} 'anstelle von' _' verwenden (möglicherweise, aber viel weniger wahrscheinlich). – tchrist

1

Erstens, Sie haben möglicherweise eine Codierung Problem, deshalb äöüÄÖÜ sind als ungültig registriert. Ich bin kein PHP-Benutzer, daher kann ich Ihre Frage nicht direkt beantworten, aber ein Blick auf this page könnte Ihnen helfen. Außerdem könnte die Verwendung geeigneter Zeichenklassen besser funktionieren als das explizite Schreiben aller geeigneten Buchstaben. Leider hängt dies wahrscheinlich auch von der Konfiguration ab.

Zweitens müssen Sie einen Platz in Ihrem regulären Ausdruck, so

/^[0-9a-z A-ZäöüÄÖÜ_\-']+$/ // note space after a-z 

funktionieren sollte. Beachten Sie, was ich im letzten Abschnitt über die Verwendung von Zeichenklassen geschrieben habe. \w könnte statt a-zA-ZäöüÄÖÜ

1

Sie ausreichend sein, nur \w verwenden können alle „Wort“ Zeichen (Buchstaben, Ziffern, etc.), um anzuzeigen, also die Regex
/^[\w_\-' ]+$/
Welche Text vom Benutzer sein erwägen Sie gültig sein"?

+0

Nun, da es ein Beschreibungstext ist, kann der Text ziemlich alles enthalten, eine Folge von Wörtern und Zeichen, die diese Sequenzen wie ".", "!" oder "?"; das \ w akzeptiert nicht ääÖÄüÜ .. –

2

der PCRE u Modifier ermöglicht utf-8. Sie sind auch ein Raum von der Regex fehlt, und man kann es ein wenig kondensieren:

/^[0-9a-zäöü\- ]+$/ui 

Obwohl ich nicht sicher bin, ob ‚i‘ mit den Hauptstädten der fremden Zeichen arbeiten.

Sie können auch Interpunktionszeichen einfügen.

Verwandte Themen