用什么函数检测 用户输入的生日日期,是否合法???
解决方案 »
- 60分啦,,,,哪里错了!!
- ASP.NET中 当文本框获得焦点时按钮启用怎么实现
- 正则表达式请教:如何验证"字符+日期"或"日期"合法
- 关于正则提取得一个问题
- 刚用asp.net2.0做的百度MP3小偷程序提供下载
- 继承页面的Session问题(999在线等)
- 哪位大虾知道vs.net2003英文版的下载地址,告诉小弟一下,多谢拉啊!
- VS2008打开或创建ASP.NET网站或程序时候,会自动关闭。求助。
- 关于如果禁止使用视图状态后datagrid控件怎么删除数据呢?
- 有点难的问题,关于时间问题。
- 如何把c#里的Array 赋到 javascript 中的 Array 中呀???
- TreeView的递归调用的程序有问题,请高手看看怎么问事
{
DateTime dt=Convert.ToDateTime(TextBox1.Text);
}
catch(System.Exception e1)
{
Response.Write("输入错误");
}
var reg2=/^(\d{4})-(\d{1,2})-(\d{1,2})$/ //定义校验时间有效性的正则表达式。
if(T_value.length != 0 && reg2.test(T_value)== false)
{
alert("数据提交失败:请检查您输入的每一个需求日期,需求日期只能输入YYYY-MM-DD形式!");
document.all["BirthDay"].select(); //使出错的文本框中的值处于被选中状态
return false;
}
if(T_value.length!=0)
{
var r=T_value.match(reg2)
var d=new Date(r[1],r[2]-1,r[3])
if(!(d.getFullYear()==r[1]&&d.getMonth()==r[2]-1&&d.getDate()==r[3])){
alert("数据提交失败:请检查您输入的每一个需求日期,需求日期只能输入YYYY-MM-DD形式!");
document.all["BirthDay"].select(); //使出错的文本框中的值处于被选中状态
return false;
}
}
void Button_Click(Object sender, EventArgs e)
{
Response.Redirect( "ThankYou.aspx" );
}
</Script><html>
<head><title>CompareValidatorDataTypeCheck.aspx</title></head>
<body><form Runat="Server">Enter your birth date:
<asp:TextBox
id="txtBirthDate"
Columns="10"
Runat="Server"/><asp:CompareValidator
ControlToValidate="txtBirthDate"
Display="Dynamic"
Text="Invalid birth date!"
Operator="DataTypeCheck"
Type="Date"
Runat="Server" /><p><asp:Button
Text="Submit"
OnClick="Button_Click"
Runat="Server"/></form></body>
</html>
所以直接用Convert转换,然后判断是否是期待的值就可以了。
不用try
function ChkData(str)
{
if (str.length==8)
{
str=str.substr(0,4) + '-' + str.substr(4,2) + '-' + str.substr(6,2);
//alert(str);
}
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null) return false;
var d= new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}------------
to:楼主
我的这个日期,可以允许用户不填写的,所以不能用正则
当有用户输入的值再判断就是了 为什么说不能用正则呢这个你还可以扩展一下允许用户输入 如 20041025 这样的格式
<BR>
<%=IsDate("2003-2-29")%>第一个返回 True,第二个返回 False