我正在尝试验证日期时间格式MM/DD/YYYY.这是我正在尝试的代码请帮助.
function ValidateDate(testdate) {
var Status
var reg = /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/g;
if (!reg.test(testdate)) {
Status = false;
}
return Status;
}
Run Code Online (Sandbox Code Playgroud) 这是我的 Web 表单控件的代码
<asp:TextBox runat="server" ID="txtUsername"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="txtUsername" runat="server" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
<asp:CustomValidator OnServerValidate="checkUsername" ID="CustomValidator1" runat="server" ControlToValidate="txtUsername" EnableClientScript="true" ClientValidationFunction="checkUsername" ErrorMessage="CustomValidator"></asp:CustomValidator>
Run Code Online (Sandbox Code Playgroud)
客户端验证
<script type="text/javascript">
function checkUsername(source,args){
alert("test");
/* alert(args.Value);
args.IsValid=false;
*/
}
</script>
Run Code Online (Sandbox Code Playgroud)
服务器端验证
protected void checkUsername(object sender, System.Web.UI.WebControls.ServerValidateEventArgs e) {
String str=e.Value;
if(str.Length>6)
e.IsValid = false;
}
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,这个 Costom 验证并没有被触发。任何线索?
编辑: 我第一次在 asp 中编码,服务器验证在代码隐藏类中
这是一个代码 asp.net 页面,也许我犯了一些小错误?
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Registration.aspx.cs" Inherits="lab1.Registration" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body> …
Run Code Online (Sandbox Code Playgroud) 我想用RegularExpressionValidator
这个形式的日期yyyy-mm-dd(例如:2012-11-29),这是我的表达:
/ ^(19 [789]\d | 20 [0123]\d) - (0\d | 1 [012] |\d) - (31 | 30 | [012]\d |\d)$ /
我在http://www.quanetic.com/Regex上测试它可以工作但如果我在我的asp.net应用程序中这样做它不起作用
<tr>
<td>Gültig ab:</td>
<td><asp:TextBox ID="txtVon" runat="server" ></asp:TextBox></td>
<td><asp:ImageButton ID="imgVon" runat="server" ImageUrl="images/Calender.ico" Width="15" Height="15" />
<asp:CalendarExtender runat="server" ID="E_Von" TargetControlID="txtVon" Format="yyyy-MM-dd" PopupButtonID="imgVon"/></td>
<td>
<asp:RequiredFieldValidator ID="ValVon"
runat="server" ForeColor="red"
ErrorMessage="*" ControlToValidate="txtVon"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="regVon"
runat="server" ControlToValidate="txtVon"
ErrorMessage="*Format" ForeColor="red"
ValidationExpression="/^(19[789]\d|20[0123]\d)\-(0\d|1[012]|\d)\-(31|30|[012]\d|\d)$/"></asp:RegularExpressionValidator>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
错误在哪里?