Bugün valiDate metodunu çalışma arkadaşıma gösterirken, neden doğrulama başarılı olduğunda tarih nesnesini döndürmediğim sorusu aklıma geldi. Toplam 7 byte’lık ufak bir ekleme ile, doğrulama başarılı olduğunda JavaScript tarih nesnesi döndürecek şekilde metodu güncelledim. Bu sayede metottan dönen değeri hala if ifadesi içinde kullanabilirken, isterseniz if ifadesinden önce metottan dönen değeri bir değişkene atayarak, bu değişkeni if ifadesinde kullanabilir ve doğrulamayı geçerse değişkeni tarih nesnesi olarak kullanabilirsiniz. Hatta abartıp doğrulamadan dönen değeri direkt if ifadesi içinde değişkeninize atayarak da kullanabilirsiniz.
/* * valiDate * https://www.karalamalar.net/ * * Copyright (c) 2009 İzzet Emre Erkan * Licensed under Creative Commons Attribution-Share Alike 3.0 Unported License * http://creativecommons.org/licenses/by-sa/3.0/ * * Date: 2010-04-16 17:08:32 +0300 (Fri, 16 Apr 2010) * Revision: 7 */ String.prototype.valiDate = function() { if(/^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)[0-9]{2}$/.test(this)) { var v = this.replace(/[- /]/g,'.').split('.'); var d=parseInt(v[0],10), m=parseInt(v[1],10), y=parseInt(v[2],10); var o = new Date(y, m - 1, d); return o.getDate() == d && o.getMonth() + 1 == m && o.getFullYear() == y ? o : false; } else return false; }
Metodun küçültülmüş halini (647 byte) buradan edinebilirsiniz.