Questo è di progettazione e tende a buttare via molte persone. RegularExpressionValidator non rende obbligatorio un campo e consente di essere vuoto e accetta spazi bianchi. Il formato \ d + è corretto. Anche usando^\ d + $ si otterrà lo stesso problema di consentire spazi bianchi. L'unico modo per forzare questo a disabilitare lo spazio bianco è anche includere un RequiredFieldValidator per operare sullo stesso controllo.
Questo è per la RegularExpressionValidator documentation, che afferma:
validazione ha esito positivo se il controllo di input è vuoto. Se è richiesto un valore per il controllo di input associato , utilizzare un controllo RequiredFieldValidator oltre al controllo di RegularExpressionValidator .
Un controllo di espressione regolare del campo nel code-behind funzionerebbe come previsto; questo è solo un problema con RegularExpressionValidator. Quindi potresti usare un CustomValidator invece e dire args.IsValid = Regex.IsMatch(txtInput.Text, @"^\d+$")
e se contenesse spazi vuoti restituirebbe falso. Ma se questo è il motivo per cui non basta usare il RequiredFieldValidator per la documentazione ed evitare di scrivere codice personalizzato? Inoltre, CustomValidator indica un postback obbligatorio (a meno che non si specifichi uno script di convalida del client con espressioni repressive javascript equivalenti).
fonte
2009-07-06 05:27:52
tutti gli spazi bianchi sono considerati vuoti? sembra che l'assetto sul server sia la risposta. –
Sì, lasciare vuoto o aggiungere spazi bianchi è lo stesso. Una volta che un personaggio è stato inserito, il validatore si innescherà, quindi l'inserimento di "10" è valido. Puoi tenerlo così com'è, sapendo che qualsiasi cosa lo faccia sarà un numero o uno spazio bianco valido. In entrambi i casi, ritaglia il tuo valore. –
grazie Ahmad. Vorrei che i documenti MSDN dicessero "tutti gli spazi vuoti sono vuoti"! –