【发布时间】:2014-02-24 18:55:07
【问题描述】:
我需要一个正则表达式来检查和删除 MembershipUser userName 中的特殊字符。
当我第一次将网站设置为测试版时,我没有考虑到特殊字符不是用于用户名的好方法,“在我的应用程序中”。
下面有一段模板代码写得不正确,但给愿意帮助的人一个良好的开端。
--我需要删除用户名中的所有特殊字符和空格,同时更新用户名。
当我说特殊字符时,我指的是 ~,`,!,@,#,$,%,^,&,*,(,),+,=,' ',;,:,,{, }。我需要检查当前用户的用户名,看看他们是否有任何这些类型的特殊字符,并将它们从该特定用户用户名中删除,并用“_”或“-”替换任何特殊字符。
我需要检查并确保任何现有用户名仅包含字母和数字,并且用户名不得以数字开头,并且必须以大写或小写字母开头。
MembershipUserCollection users = Membership.GetAllUsers();
List<MembershipUser> userToEmail= new List<MembershipUser>();
foreach (MembershipUser user in users) {
if (user.UserName./*Some type of reg expression here to check for special characters and white spaces*/) {
user.UserName = user.UserName /*some reg expression to remove special characers and white spaces*/
Membership.UpdateUser(user);
userToEmail.Add(user);
}
}
void EmailUser(List<MembershipUser> userToEmail){}
--我目前正在使用下面的代码来确保在首次创建用户帐户时,用户名中只使用字母和数字。
现在我需要做一个user.Replace(regexpression,"-") 来清理现有的用户名。
[Required]
[Display(Name = "User name:")]
[StringLength(256, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 7)]
[RegularExpression(@"^[a-zA-Z0-9]*$", ErrorMessage = "The user name can only contain letters and numbers.")]
public string UserName { get; set; }
【问题讨论】:
-
你有什么问题?
-
我需要一种方法来检查用户名是否包含任何特殊字符或空格,以及该用户名是否删除了特殊字符并将其替换为低于分数 _。
-
这就是您需要的 - 您的实际具体问题是什么?
-
根据什么定义,您认为某些字符是“特殊的”?
标签: c# regex membershipuser