一个web程序,添加用户时需要验证用户名的格式。允许字母+数字+汉字三种任意组合,不允许特殊符号和其他格式。
另外,需要验证该用户名是否已经存在。目前我用了:MaskedEditExtender和MaskedEditValidator两个控件,但是发生一个问题MaskedEditExtender控件的Mask属性只能验证字母+自定义字符(自定义字符指的是什么?我用汉字通过了,难道是汉字)或者数字+自定义字符,没办法允许字母+数字+汉字的组合。求助我该怎么办。另外,验证数据是否存在应该用哪个控件?
另外,需要验证该用户名是否已经存在。目前我用了:MaskedEditExtender和MaskedEditValidator两个控件,但是发生一个问题MaskedEditExtender控件的Mask属性只能验证字母+自定义字符(自定义字符指的是什么?我用汉字通过了,难道是汉字)或者数字+自定义字符,没办法允许字母+数字+汉字的组合。求助我该怎么办。另外,验证数据是否存在应该用哪个控件?
解决方案 »
- 关于GridView的问题,高手请帮忙
- <customErrors> 标记问题
- IE Developer ToolBar 装在IE7下,不显示DOM树呢。重装了IE7 也重装了IE Developer ToolBar个。都还是没有个
- 【100】,求一个自动生成TreeView
- 看不见自己的帖子怎么办?
- 为什么我的button放在html的table控件里就没反映了
- 给大家看一个纯ajax的论坛,依照mop做的www.flyinweb.com
- 。NET试题,请大家帮忙
- C#中判断一个数值是否是数字的函数是什么
- .net 项目登录时可以通过阿里旺旺账号登录,有人开发过吗
- 页面缓存问题,解决马上结贴
- |zyciis| 求正则表达式 {[A,B]}{[C,D]}取出里面的组A,B C,D 谢谢
没什么机会用这个控件,仅供参考。
用户名:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" ErrorMessage="用户名必须输入" ControlToValidate="TextBox1" Display="Dynamic"/>
<asp:RegularExpressionValidator runat="server" ControlToValidate="TextBox1" Display="Dynamic"
ValidationExpression="[\w\u4e00-\u9fa5]+" ErrorMessage="请输入字母数字或中文"/>
<asp:CustomValidator runat="server" Display="Dynamic" ControlToValidate="TextBox1"
OnServerValidate="UserName_Validate" ErrorMessage="用户已存在" />后台代码:
protected void UserName_Validate(object source, ServerValidateEventArgs e)
{
string username = e.Value; bool found = false;
// 从数据库中查询用户,判断用户是否存在,例如
// string sql = "SELECT * FROM Users WHERE UserNamee=@username";
// SqlCommand cmd = new SqlCommand(sql, new SqlConnection("..."));
// cmd.Parameters.Add(new SqlParameter("username", username));
// found = cmd.ExecuteReader().HasRows; e.IsValid = !found; // 数据库里没有该用户名时,验证通过
}
一般检查用户名是否存在,不用验证控件也可以,直接在insert到数据库前判断,如果存在就在页面的提示信息控件(例如Label)中显示一个提示,直接返回就可以了。推荐用jquery的validation作验证,可以更方便写出简单的代码,楼主有兴趣可以参考下
http://bassistance.de/jquery-plugins/jquery-plugin-validation/
这是jquery.validation做的例子
http://jquery.bassistance.de/validate/demo/eto/
<asp:RegularExpressionValidator runat="server" ControlToValidate="TextBox1" Display="Dynamic" ValidationExpression="^[\u4E00-\u9FA5a-zA-Z\d]+$
" ErrorMessage="请输入字母数字或中文"/>
判断存在使用ajax或ashx异步查询
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
function CheckUserName()
{
var us=document.getElementById("txtname").value;
if(us!="")
{
createXMLHttpRequest();
var url= "RegistValidate.ashx?username="+escape(document.getElementById("txtname").value);
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=ShowResult;
xmlHttp.send(null);
}
}
function ShowResult()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
var s;
s=xmlHttp.responseText;
alert(s);
}
}
}
</script>