2009-10-06 3 views

ответ

1

вы используете дд/мм/гггг для проверки даты - вы можете использовать объект даты JavaScript для проверки даты, но его сложнее в этом случае:

var o = document.form1.date1; // o is a reference to the textbox 
var r = /^(\d+)\/(\d+)\/(\d+)$/.exec(o.value); // extract day, month and year 
if (! r) 
{ 
    // invalid date -- pattern matching failed 
} 
var d = parseInt(r[ 1 ], 10); 
var m = parseInt(r[ 2 ], 10); 
var y = parseInt(r[ 3 ], 10); 
var c = new Date(y, m - 1, d); // month is zero based but year and day are not 
if (isNaN(c)) 
{ 
    // invalid date -- javascript could not make a date out of the three numbers 
} 
+1

Вы должны использовать аргумент radix функции parseInt, у вас могут быть проблемы * специально * с номерами * даты *, которые имеют предшествующие нули, например: 'parseInt ('08 ') == 0'. Предыдущий нуль указывает на parseInt, что число, которое обрабатывается, является восьмеричным числом, вы должны использовать 'parseInt (n, 10)'. – CMS

2

Если вы используете WebForms, просто использовать CompareValidator:

<asp:CompareValidator runat="server" ControlToValidate="txtInput" Type="Date" 
Operator="DataTypeCheck" ErrorMessage="That's not a valid date!" /> 
+0

Именно то, что я искал , так долго ince Я сделал ASP.NET, я не мог вспомнить свойство Operator. Благодаря! –