Sie es rückwärts zu tun, versuchen Sie nicht positiv Sonderzeichen entsprechen, begrenzt das, was Menschen können/verwenden. Stattdessen betrachten Sie Match etwas nicht nicht etwas Besonderes zu sein, zum Beispiel:
pw.length >= 8 && /\d/.test(pw) && /[^a-z\d\x20]/i.test(pw)
als Kontrollen Länge, das Vorhandensein einer Ziffer, dann Vorhandensein eines Zeichens, das nicht alphanumerische noch ein Raum ist (die i
Flagge es Fall macht -unempfindlich). Sie sollten auch Räume und andere Steuerzeichen nicht zulassen, die nicht in der Regel der Lage sind, auf einer Tastatur eingegeben werden (verhindert Menschen in Junk-Einfügen):
&& !/[\x00-\x20]/.test(pw)
Nur damit Sie wissen, '[Az]' enthält auch die Zeichen '' [\]^'_'' –
Guter Punkt, danke wird es auf az fallen lassen. – Adrian
Mögliches Duplikat von [Regex für Passwort Muss mindestens 8 Zeichen enthalten, mindestens 1 Zahl sowie Groß- und Kleinbuchstaben und Sonderzeichen] (http://stackoverflow.com/questions/19605150/regex-for-password-must-) be-contain-mindestens-8-Zeichen-mindestens-1-Nummer-und-bot) –