美文网首页
昵称验证

昵称验证

作者: Francis_Rose | 来源:发表于2017-07-13 12:34 被阅读40次

一般会有要求指定长度的昵称合法性验证,比如要求6-18位字符、数字和下划线。通常的做法会是使用正则表达式,但是英文字符占一位(1byte),而中文占两位(2byte),这样在验证的时候不好统一。可以采用先计算字符串长度,然后用正则表达式匹配是否合法:
验证字符串长度
private int GetStringLength(string checkStr)
{
var originalStr = checkStr.ToCharArray();
var strLen = 0;

    for (int i = 0; i < originalStr.Length; i++)
    {
        if ((int)originalStr[i] > 127)
        {
            strLen += 2;
        }
        else
        {
            strLen++;
        }
    }
    return strLen;
}

正则表达式:
private Regex regexNickName = new Regex(@"^[A-Za-z0-9_\u4e00-\u9fff\uf900-\ufa2d]");

验证过程:
private bool CheckNickName()
{
var checkResult = false;
var nameLength = GetStringLength(newNickName);
if (nameLength >= 6 && nameLength <= 16 && regexNickName.IsMatch(newNickName))
{
checkResult = true;
}
return checkResult;
}

这里有一个问题是只能验证带中文及英文字母的,其它古怪字符没有包含在检测字符里面

相关文章

  • 昵称验证

    一般会有要求指定长度的昵称合法性验证,比如要求6-18位字符、数字和下划线。通常的做法会是使用正则表达式,但是英文...

  • 常用正则表达

    用户名验证: 电话号码验证: 邮箱验证: 密码验证 身份证验证: 昵称验证: 车牌号验证:

  • iOS_正则表达式判断手机型号邮箱、手机号、身份证、昵称、密码等

    // 邮箱 // 手机号码验证 // 车牌号验证 // 车型 // 用户名 // 密码 // 昵称 //身份证 /...

  • iOS正则表达式

    //邮箱 //手机号码验证 //车牌号验证 //车型 //用户名 //密码 //昵称 //身份证号

  • iOS 常用正则表达式

    /邮箱 //手机号码验证 //车牌号验证 //车型 //用户名 //密码 //昵称 //身份证号

  • 记第一次使用简书

    搜索“简书”,点击注册,填写昵称,验证码,设置密码。 在填写昵称的过程中发现,我很难想到一个昵称。并非是知识面或者...

  • 用户中心

    路由,跳转登录页,填写登录信息(用户名(昵称,手机,邮箱),密码,验证码),

  • 网络

    通过验证 修改备注 修改昵称 置顶聊天 取消置顶 修改备注 连名带姓 删除好友

  • 注册登录退出

    一、注册 创建用户数据 注册方式:昵称+密码、邮箱+验证码、手机号+短信验证或加登录密码、第三方或加绑定手机号 风...

  • 【昵称】英文昵称分享

    Sokäch : 周日的幸福感 Flipped : 只是听到就怦然心动了 Amireux : 友人以上 恋人未满 ...

网友评论

      本文标题:昵称验证

      本文链接:https://www.haomeiwen.com/subject/srswhxtx.html