2012-05-22 7 views
0

У меня есть дата рождения, такая как 12-08-1989 в текстовом поле в HTML.I хочу подтвердить, что пользователю должно быть 18 лет в javascript.Дата подтверждения валидации в JavaScript?

Я использовал функцию Date в javascript, но, похоже, он принимает формат YYYY-MM-DD, но я хочу проверить его в DD-MM-YYYY.

Как я могу это достичь?

+0

Что делать, если JavaScript отключен в браузере? – BalusC

+0

Это может быть возможность. Но мне это нужно, пожалуйста, скажите мне, как я могу это сделать в javascript. – saurav

+0

Я не знаю @BalusC, это еще вопрос в эпоху Facebook, Google и т. Д. С массивным jQuery/AJAX-интерфейсы? – benqus

ответ

2
var pattern =/^([0-9]{2})-([0-9]{2})-([0-9]{4})$/; 
if(pattern.test(str_input_date)) 
{ 
    alert("valid date"); 
} 

Это должно дать вам начало. :)

+0

Но как я могу проверить дату с помощью этого кода – saurav

0

вы можете использовать класс даты, так как этот

try{ 
    var x=new Date('1/1/2001'); 
    var Cnow=new Date();//current Date 
    if(Cnow.getFullYear()- x.getFullYear()<18){ 
    alert('not old enough'); 
    } 
    else{ 
     //success !!! 
    } 

} 
catch(ejs){alert('invalid')} 
+0

Я пробовал свой код, но похоже, что он не работает в 01-01-2001 формате – saurav

+0

Опечатка в «Cnow.getFullYesr «Я написал yesr вместо yeAr ... и этот формат работает правильно – Hilmi

+0

Спасибо Это работает – saurav

1

Вы, вероятно, следует использовать некоторые рамки проверки, как jQuery.validation. Это гораздо более последовательный способ обработки валидации в вашем коде. Если это единственное проверенное поле в вашем приложении, вы можете, конечно, использовать наивную реализацию, как указано выше.

Если вам нужны некоторые расширенные правила проверки даты, вы можете использовать фреймворк даты JS, например Moment.js (или Date.js, который на данный момент устарел).

0

«Я использовал Дата функции в JavaScript, но кажется, что он принимает формат YYYY-MM-DD, но я хочу, чтобы проверить в DD-MM-YYYY»

Вы можете создать объект Date пропусканием год, месяц и день (и, возможно, час, минута, секунда, и миллисекунды) значения отдельно:

var aDate = new Date(2012, 5, 22); 

Так что, если вы используете регулярные выражения или другие методы строки для извлечения части из того, что вошел пользователь то вы можете создать дату из формата DD-MM-YYYY (или любого другого), который вам нравится.

Как я бы проверить, если пользователь по крайней мере, 18 лет, было бы добавить 18 лет к дате их рождения и посмотреть, если он находится на или до сегодняшнего дня:

aDate.setFullYear(aDate.getFullYear() + 18) 

Различных методы, доступные для объекта Date, - listed at MDN.

Смежные вопросы