question

JavaScript: Como voce validar hora (hh: mm / h:mm / tempo de exercito) em um formulario web?

Pergunta de atribuição:

Valide que o tempo de pick-up é inserido. O tempo deve seguir o formato hh: mm ou h:mm. A validação desse campo deve usar uma expressão regular. Defina a cor de fundo amarelo e definir qualquer texto de entrada para vermelho, se o campo está vazio ou não formatado corretamente.

__________________________________________________________________

HTML:

<td align="right" valign="top">
<span class="body_text">Tempo de transporte desejado:</span>
</td>
<td valign="top">
<span class="body_text">
<input name="time" type="text" id="time" size="10" maxlength="10">
</span>
</td>

__________________________________________________________________

função validateti() {

}

Eu não comecei no código JS, mas tenho lido há algum tempo agora. Ele está me confundindo no momento. Eu tentei muitos códigos diferentes de minhas buscas, mas sem sorte. Alguém sabe algum guia do novato-friendly?

São códigos de validação de tempo normalmente longo? Isso é tudo o que eu estou vendo até agora... Existe uma maneira mais simples?

Obrigado.
resposta Resposta
Expressões regulares são muito complicadas, se você não conhece-los, mas assim que você aprendê-las, faz validação muito mais fácil. Mas é uma curva de aprendizagem.

Basicamente você quer decidir sobre um padrão (você provavelmente pode ignorar a parte de "modificadores") que vai corresponder a todas as datas. Em seguida, testá-lo com o método de .match (sobre o objeto de seqüência de caracteres).

Isso vai ser muito para tomá-lo, mas ele deve apontá-lo na direção certa.

Por exemplo, vamos dizer que eu quero validar datas (sem ano) só: var test_string1 = "01/02" var test_string2 = "1-02" var test_string3 = "01/02" / / assim os 2 primeiros são válidos, e o último não é patt var = / [0-3]?[0-9][/-][01]?[0-9] / / / parece uma bagunça, certa? ignore isso por enquanto.

test_string1.Match(Patt); / / Retorna true test_string2.match(patt); / / Retorna true test_string3.match(patt); / / Retorna false permite ter um olhar para a variável de patt, é a coisa mais importante aqui. -ele começa e termina com / - suportes quadrados basicamente significam "nada nesta seleção". 0-9 significa 0123456789, mas poupa-lhe escrever todos os números. -a primeira parte "[0-3]" significa o primeiro caractere corresponderia se fosse 0, 1, 2 ou 3. Mas o? Depois que significa que não é necessário, para que possa ser ignorada (urso comigo). -a próxima parte "[0-9]" significa qualquer número será aceito em seguida (assim que você coloca 0 k/02/2012, ele iria falhar aqui). -Depois disso, [/-] significa que aceita qualquer um / ou - o seguinte.

-Se esquecer o resto, nós temos patt var = / [0-3]?[0-9][/-]-este pode aceitar coisa como "15 /", "28-", "1 /" e mesmo "0-" (que não é ideal como uma data, mas ignorar que) - Observe que ele não iria aceitar "41 /". A maneira mais fácil de aprender na regex (eu achei), é caminhar através do teste padrão com um número em sua cabeça. Vamos dizer que temos "15 /".

-Olhar para o primeiro caractere, "1" e percorrer a regex. A primeira coisa que encontramos é [0-3]? -Isto é bem sucedido, pois 1 entre 0 e 3. Podemos então passar para nosso próximo caractere, que é "5". Nós mover junto com a regex muito, pois combinou com sucesso antes, então não estamos no "[0-9]" e hey presto, ele corresponde novamente. Finalmente temos apenas "/" para comparar com "[/-]". É nos suportes quadrados assim que funciona. Temos um jogo! -Que tal "41 /" embora? Tome o primeiro caractere, "4". Ele falha contra [0-3]?, mas isso não significa que devemos esquecê-lo. Uma vez que há um?, nós só pode mover para a próxima parte de regex, que é "[0-9]" - 4 é entre 0 e 9 por isso dá uma correspondência. Em seguida temos o nosso "1", mas agora temos que tentar combiná-lo contra "[/-]"- e que falha, porque "1" não é dentro de colchetes.

Essa é a premissa básica de expressões regulares. Tente este tutorial de Regex: http://www.w3schools.com/js/js_obj_regexp.asp se isso não funcionar para você, google "Javascript tutorial de regex" e ele vai te dar muitas alternativas. É uma curva de aprendizado bastante grande, mas definitivamente vale a pena aprender se você vai ser a programação mais.

ComentáriosComentários
Acho que a resposta não está correta ou que você gostaria de acrescentar mais
alguma informação? Envie o seu comentário abaixo..

Guest


HTML não é permitido!

Image Code

Digite os caracteres que aparecem na imagem por isso sabemos que você é humano!

Receber um email quando alguém acrescenta outro comentário a esta pergunta



Topo da página


Home  Terms
Copyright © Accelerated Ideas 2005-2024
All rights reserved