Pergunta

Eu me deparei com um problema tentando modificar um formulário que eu mesmo não construí.

O formulário possui um campo de entrada ASP: um valor de data, o que é verificado por um campo de campo exigido e um rangeval. O RangeVal tem tipo definido para "Data" e Min Value 2000-01-01: Valor máximo 3000-01-01

Agora, para o problema, estou tentando adicionar para que o usuário também possa inserir a data na forma de "20000101" em outras palavras sem o "-".

Tentei adicionar outro RangeVal com o tipo inteiro e os valores mínimos, e coloquei os dois no mesmo grupo de validação, mas isso não funcionou.

Como permito que o usuário use os dois formatos (qualquer um deles) no campo de entrada da data.

Agradeço antecipadamente!

Foi útil?

Solução

Você pode usar um validador de expressão regular no lugar do validador de intervalo. Estou um pouco enferrujado com Regex, mas tenho certeza de que você pode encontrar algo aqui.

http://www.regular-expressions.info/

Aqui está um link para a página de datas:

http://www.regular-expressions.info/dates.html

Tente isso, acho que vai funcionar. Caso contrário, me avise e vou trabalhar para corrigi -lo:

((19|20)\d\d[- /.](0[1-9]|1[012])[-/.](0[1-9]|[12][0-9]|3[01])|((19|20)\d\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])))

Outro post trouxe um ponto em que o regex não valida algumas datas inválidas, como 31 de fevereiro. Nesse caso, eu apenas criaria uma classe de validação que herda do validador Regex e substituía o método avaliado e verificando se é um real encontro. Isso permite que a maior parte da validação realizada no final do cliente, com o backup no nível do servidor, que deve fazer uma validação secundária de qualquer maneira.

Outras dicas

Quando você usa vários controles de validação para validar um único controle, todos os controles de validação devem passar.

Você pode usar uma expressão regular (como Kevin aponta), mas fazendo a validação necessária (verificando se o valor é válido DateTime objeto e dentro do intervalo especificado) será difícil de fazer de maneira limpa.

Eu sugiro escrever o seu próprio CustomValidator Controle e use isso para validar seus valores como desejar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top