2016-05-31 14 views
1

Ich habe versucht, einen Mustervalidator mit eingebautem Validator in eckig zu implementieren. Ich wollte dieses Muster verwenden: /\S+/g aber es hat nicht funktioniert, weil eckig mein Muster in seiner Funktion überschreibt You can see it here Warum setzen sie die^und a $ am Anfang und am Ende der Zeichenfolge? Sollte ich stattdessen einen benutzerdefinierten Validator verwenden? Ist es ein Fehler oder funktioniert es wie erwartet? HierAngular 2 Validator Muster

ist ein plunkr http://plnkr.co/edit/OHrUitqUnhIYxsraby7J

+0

Die Anker werden nur zu einem * string * -Muster hinzugefügt. Wenn Sie ein Regex-Objekt (als String) übergeben, werden keine Anker hinzugefügt. Außerdem können Sie '/ g' nicht in der ng-Muster-Regex verwenden. Könntest du eine Geige mit deinem Validator teilen? –

+0

Ich habe aktualisiert. [Hier ist es] (http://pnnr.co/edit/OHrUitqUnhIYxsraby7J) – bucicimaci

+1

Ok, so bedeutet es, dass der Validator ein Regex-Objekt wie String nicht erlaubt. Da Sie mindestens ein Nicht-Whitespace-Zeichen benötigen, verwenden Sie ['". * \\ S. * "'] (http://pnnr.co/edit/mnGttywNdu5nHFDCmEyC?p=preview)? –

Antwort

2

Es scheint, dass diese Prüfung nicht zulässt ein regex wörtlichen weitergegeben werden. Sie müssen sicherstellen, dass Sie die ganze Zeichenfolge übereinstimmen. Also, wenn Sie planen, um die Zeichenfolge benötigen mindestens einen Nicht-Leerzeichen, haben verwenden

".*\\S.*" 

die updated plunkr See.