Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Usar pattern em uma funcao para validar data e valor em decimal??

Queria formatar nessa funcao uma data assim dd/mm/yyyy e um valor que possa aceitar virgula 100,99 ja vi que o javascrip só aceita pontos

function adicionaContaNaTabela(conta){

    //preencher data com 10 caracteres
    if(conta.data.length ==10){

        var contaTr = montaTr(conta);
        var tabela = document.querySelector("#tabela-conta"); // selecionando tabela
        tabela.appendChild(contaTr); //colocando a linha tr dentro da t
    }
    else if (conta.data.length > 0 ){
        alert("Data no formato incorreto!");
    }

    //preencher todos os campos
    if(conta.data && conta.conta )
    {

        var contaTr = montaTr(conta);
        var tabela = document.querySelector("#tabela-conta"); // selecionando tabela
        tabela.appendChild(contaTr); //colocando a linha tr dentro da tabela

    }else{

        alert("Preencha todos os campos!");
    }

}
2 respostas

coloquei um type number no input de data percebi que eles só pega a letra e e as outras não alguem pode me explicar?

solução!

Para fazer validação de padrão de data em javascript, você pode tentar criar um objeto Date e, se der erro, você sabe que a data é inválida, ou usar o método match():

new Date("2017-01-31"+"T00:00:00")
// retorna "Tue Jan 31 2017 00:00:00"
new Date("2017-01-32"+"T00:00:00")
// retorna "Invalid Date"

"31/01/2017".match(/(\d+)/g);
// retorna ["31", "01", "2017"]
"31/01/2017".match(/(\d{2})\/(\d{2})\/(\d{4})/);
// retorna ["31/01/2017", "31", "01", "2017", index: 0, input: "31/01/2017"]

Porém é necessário tomar cuidado pois o método match() não sabe que não existe a data 32/01/2017.

Sobre a moeda, você pode utilizar o type=number e fazer o seguinte: remova todas as virgulas e substitua todos os pontos por vírgulas:

"1,000,000.00".replace(/,/g, "").replace(/\./, ",");
// retorna "1000000,00"

Já sobre o input type=number, ele aceita o caractere e pois este é um caractere de representação pra expoentes de 10:

O número 1000 pode ser escrito também como 100e1, 10e2 e 1e3:

1000 == 100*10 == 10*100 == 1*1000
100e1 == 100*(10^1) == 100*(10*1)
10e2 == 10*(10^2) ==  10*(10*10*1)
1e3 == 10*(10^3) == 10*(10*10*10*1)

O input type=number também aceita pontos, vírgulas e o sinal de -.