我需要一个正则表达式来检查和删除特殊字符MembershipUser
userName
。
当我第一次将站点设置为 beta 时,我没有考虑到特殊字符不是用于用户名的好方法,“在我的应用程序中”。
我在下面有一段模板代码,它没有正确编写,但给愿意帮助的人提供了一个良好的开端。
--我需要从用户名中删除所有特殊字符和空格,同时更新用户名。
当我说特殊字符时,我指的是 ~,`,!,@,#,$,%,^,&,*,(,),+,=,' ',;,:,,{,}。我需要检查当前用户的用户名,看看他们是否有任何这些类型的特殊字符,并将它们从该特定用户用户名中删除,并用“_”或“-”替换任何特殊字符。
我需要检查并确保任何现有用户名仅包含字母和数字,并且用户名不得以数字开头,并且必须以大写或小写字母开头。
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; }