Skip to content

Instantly share code, notes, and snippets.

@kylefelipe
Last active May 30, 2020 16:51
Show Gist options
  • Save kylefelipe/afb17e2536bbb3c48d08bb83b45b7acf to your computer and use it in GitHub Desktop.
Save kylefelipe/afb17e2536bbb3c48d08bb83b45b7acf to your computer and use it in GitHub Desktop.
Ajudando um colega com o REGEX
const pattern = /^([0-9]{0,2})\/([0-9]{2})\/([0-9]{4})$/;
const dataInicio = document.getElementById('data-inicio');
dataInicio.addEventListener("keypress", function(e){
if (e.keyCode === 13){
validaData();
}
});
function validaData(){
if (dataInicio.value.match(pattern) === null){
alert("Formato de data não válido! Digite: DD/MM/AAAA");
}
}
let pattern = /ˆ([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})$/;
// o meta {} significa a quantidade de repetições quando usamos o 0 como primeiro parametro, e um número depois
// significa que queremos até m repetições.... se iniciar de outra forma ele comporta diferente
// o correto é usar [0-9]{0,2} pq queremos que tenha até 2 repetições do padrão.
// o padrão correto vai ficar /^([0-9]{0,2})\/([0-9]{2})\/([0-9]{4})$/
dataInicio.addEventListener("keypress", function(e){
if ( e.keyCode === 13){
validaData();
}
});
function validaData(){
if ((pattern.test(dataInicio.value) == false)){
//aqui vc inverteu as coisas, a string precisa combinar com o padrão - dataInicio.value
// o .test() deu problema em todos os testes que fiz, o melhor a usar foi o .match(), e essa função retorna false|true
// Pq colocou dois parentesis no if?? não é necessário
// então a condição do if vai ficar assim
// if (dataInicio.value.match(pattern) === false) {........
// ou vc pode usar assim tbm
// if (!dataInicio.value.match(pattern)) {........
alert("Formato de data não válido! Digite: DD/MM/AAAA");
}
}
@kylefelipe
Copy link
Author

@preto115 Então, eu tenho um canal sim é o #ThinkFreeGeo no youtube.
Tem a thread da @carlanakajuni no slack do curso tbm, onde tem um link para o site do Arélio Jargas, que é uma ótima fonte sobre... super indico o livro dele se quiser aprender... é bem indicado para quem está iniciando no assunto....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment