在asp.net中用CustomerValidator验证身份证号
时间: 2024-10-21 11:07:07 浏览: 90
在ASP.NET中,你可以使用`CustomValidator`控件结合自定义的验证函数来验证身份证号码。以下是一个基本步骤:
1. **创建自定义验证器**:
首先,在项目的`App_Code`文件夹下创建一个新的`.cs`文件(例如`IDCardValidator.cs`),然后编写一个验证函数,如使用正则表达式检查身份证号码的有效性。
```csharp
public class IDCardValidator : RegularExpressionValidator
{
public IDCardValidator()
{
ValidationExpression = @"^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$";
}
}
```
这个验证表达式简单地匹配中国大陆居民身份证的格式。
2. **在页面上应用验证**:
在需要验证身份证输入的`<asp:TextBox>`标签旁边添加`<asp:CustomValidator>`控件,并设置`ControlToValidate`属性为身份证输入框的名称,`ValidationExpression`属性引用刚才创建的验证表达式,`ErrorMessage`设置错误提示信息。
```html
<asp:TextBox ID="txtID" runat="server"></asp:TextBox>
<asp:CustomValidator ID="cvIDCard" runat="server"
ControlToValidate="txtID"
ErrorMessage="请输入有效的身份证号码"
Display="Dynamic"
ValidationExpression="<%# new IDCardValidator().ValidationExpression %>"
></asp:CustomValidator>
```
3. **启用服务器端验证**:
在`<form>`标签中添加`runat="server"`,并在`<asp:GridView>`或其他服务器控件中打开`EnableViewStateMac`属性。
```html
<form id="form1" runat="server">
...
</form>
```
现在,当你提交含有身份证号码的表单时,如果输入的号码不符合规定,`CustomValidator`会触发并显示错误消息。
阅读全文