2016-07-21 7 views
0

Ich muss eine Validierung mit MS Enterprise Library schreiben. Der Validierungszweck besteht darin, eine Zeichenkette zu validieren, die @ Schlüsselwort bei atleast einmal haben sollte, und es kann irgendeine Sache von 120 Länge haben, jetzt sicher, wie man es macht.Validierung mit Validierungsblock

<validator type="Microsoft.Practices.EnterpriseLibrary.Validation.Validators.ContainsCharactersValidator, Microsoft.Practices.EnterpriseLibrary.Validation, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
       characterSet="@" containsCharacter="Any" name="Contains Characters Validator" /> 

versuchen, etwas wie dies, aber löst nicht den Zweck.

oder ein Regex wird funktionieren ..?

+0

Ist dies eine Funktion, die Sie schreiben? – Roman

+0

Nein, es ist ein MS-Validierungsblock, der mein Modell überprüft, bevor es an das Backend übergeben wird. –

+0

dann C# -Tag möglicherweise nicht die beste für diese Frage, da Sie nicht wirklich C# -Code schreiben – Roman

Antwort

0

Anstatt die ContainsCharactersValidator zu verwenden, können Sie die RegexValidator mit einem geeigneten regulären Ausdruck verwenden.

Wenn Ihre Anforderungen sind:

  • @ überall in der Zeichenkette, 0 bis viele Instanzen
  • Gesamtsaitenlänge zwischen 1 und 120 Zeichen
  • Andere erlaubten Zeichen sind alphanumerische nur

Dann sollte eine Regex von [@A-Za-z0-9]{1,120} die Arbeit für Sie erledigen.

+0

Aber meine Anforderung ist es kann @ an jeder Stelle mehr als 1 mal und kann jeden Charakter haben, aber Limit sollte 120 –

+0

haben Kein Problem. Gibt es eine Mindestlänge für die Stringlänge? Welche anderen Charaktere sind erlaubt? –

+0

jedes andere Zeichen ist erlaubt, aber es sollte @ At mindestens einmal und Grenze sollte 120 max sein –