Convertir une chaîne au format jj-mm-aaaa en objet date en JavaScript
En essayant de convertir une chaîne au format jj-mm-aaaa dans un objet Date, vous pouvez rencontrer des erreurs « Date invalide » en raison de la présence de « - » symboles.
Solution 1 : Diviser sur "-"
Diviser la chaîne en ses composants individuels jour, mois et année :
var dateStr = $("#datepicker").val(); var dateParts = dateStr.split("-"); var date = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);
Solution 2 : Utiliser des expressions régulières (Regex)
Utiliser une regex pour extraire le composants individuels de la chaîne :
var regex = /(\d{2})-(\d{2})-(\d{4})/; var date = new Date(dateStr.replace(regex, "//"));
Recommandation : diviser sur "-"
Bien que l'expression régulière offre plus de flexibilité, la division sur "-" est recommandée lors de l'analyse corrigée -formater les chaînes car c'est plus simple et plus efficace, surtout si vous réutilisez la logique d'analyse dans plusieurs parties de votre code.
Réutilisabilité et JavaScript moderne
Pour la réutilisabilité, vous pouvez envelopper la logique d'analyse dans une fonction :
function parseDate(dateStr) { var dateParts = dateStr.split("-"); return new Date(dateParts[2], dateParts[1] - 1, dateParts[0]); }
En JavaScript moderne, vous pouvez utiliser la déstructuration de tableaux pour simplifier l'analyse :
const parseDate = (dateStr) => { const [day, month, year] = dateStr.split("-"); return new Date(year, month - 1, day); };
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!