Como verificar se uma string é uma data em JavaScript? As melhores técnicas!
Quando trabalhamos com JavaScript, muitas vezes precisamos validar se uma string é uma data válida. Isso pode ser útil em diversas situações, como formulários de cadastro, validação de datas em um sistema, entre outros casos.
Existem várias maneiras de fazer isso, e aqui vamos apresentar algumas das melhores técnicas para verificar se uma string é uma data em JavaScript.
Utilizando Expressões Regulares
Uma das maneiras mais comuns de verificar se uma string é uma data em JavaScript é utilizando expressões regulares. Expressões regulares são padrões de busca em strings que nos permitem verificar se uma determinada sequência de caracteres corresponde a um determinado formato.
No caso de datas, podemos utilizar uma expressão regular para verificar se a string possui o formato de uma data válida, como por exemplo “yyyy-mm-dd”.
function isDate(str) {
var pattern = /^d{4}-d{2}-d{2}$/;
return pattern.test(str);
}
Esta função recebe uma string como parâmetro e utiliza uma expressão regular para verificar se ela corresponde ao formato de uma data no padrão “yyyy-mm-dd”. Se a string corresponder ao padrão, a função retorna true, caso contrário retorna false.
Utilizando o Objeto Date
Outra maneira de verificar se uma string é uma data em JavaScript é utilizando o objeto Date. O construtor Date permite criar objetos que representam uma data e hora específicas, e podemos utilizá-lo para verificar se uma string é uma data válida.
function isDate(str) {
return !isNaN(Date.parse(str));
}
Nesta função, utilizamos o método Date.parse para tentar converter a string em uma data. Se a conversão for bem sucedida, a string é uma data válida e a função retorna true. Caso contrário, retorna false.
Conclusão
Verificar se uma string é uma data em JavaScript pode ser muito útil em diversas situações, e as técnicas apresentadas aqui são algumas das melhores maneiras de fazer isso. Utilize as expressões regulares ou o objeto Date de acordo com a sua necessidade e preferência, e garanta que suas strings sejam validadas corretamente.
Olá. Para ficar mais completo você poderia ter combinado as duas funções para validar o Regex como uma data real ou não, já que se eu digitar 99/99/9999 isso será considerado como uma data, e não é.
Edit:
!isNaN((new Date("22/13/2023".replace(/(d{2})/(d{2})/(d{4})/, "$3-$2-$1"))).getTime())
muito bom o video de programação web
Valeu! Prof. Mateus sempre trazendo conteúdo com muita qualidade. Parabéns.
👏👏👏👏👏