正则表达式:验证字符串是否由汉字 数字或字母组成

时间:2023-01-29 18:50:35

/// <summary>
        /// 检查是否是由汉字、数字或字母组成
        /// </summary>
        /// <param name="strNumber">检查的字符串</param>
        /// <returns>返回结果</returns>
        public static bool CheckStrUserName(string strUserName)
        {
            //返回的结果
            bool strResult;

            // /([u4e00-u9fa5]|[a-zA-Z0-9]){6,20}/g
            //^[0-9a-za-zu4e00-u9fa5]+$
            //="^[a-zA-Z\u4e00-\u9fa5]+|[a-zA-Z\u4e00-\u9fa5]+[0-9]+$";
            // ^(?!\d)[a-zA-Z0-9\u4e00-\u9fa5]+$
            // /^[\u4e00-\u9fa5A-Za-z0-9\-\_]*$/
            //--  ^[\u4e00-\u9fa5],{0,}$


            Regex exStrUserName = new Regex("^[a-zA-Z\u4e00-\u9fa5]+|[a-zA-Z\u4e00-\u9fa5]+[0-9]+$");
            try
            {
                strResult = exStrUserName.Match(strUserName).Success;
            }
            catch
            {
                strResult = false;
            }
            return strResult;
            
        }


注释的那些是我在网上找的,但只要输入汉字就不对

6 个解决方案

#1


    public static bool CheckStrUserName(string strUserName)
    {
        //返回的结果
        bool strResult;

        // /([u4e00-u9fa5]|[a-zA-Z0-9]){6,20}/g
        //^[0-9a-za-zu4e00-u9fa5]+$
        //="^[a-zA-Z\u4e00-\u9fa5]+|[a-zA-Z\u4e00-\u9fa5]+[0-9]+$";
        // ^(?!\d)[a-zA-Z0-9\u4e00-\u9fa5]+$
        // /^[\u4e00-\u9fa5A-Za-z0-9\-\_]*$/
        //--  ^[\u4e00-\u9fa5],{0,}$


        Regex exStrUserName = new Regex(@"^[\da-z\u4e00-\u9fa5]+$");
        try
        {
            strResult = exStrUserName.Match(strUserName).Success;
        }
        catch
        {
            strResult = false;
        }
        return strResult;

    }

#2


Regex reg = new Regex(@"^(?![^\u4e00-\u9fa5]+$)(?![^a-zA-Z]+$)(?![^0-9]+$)[\u4e00-\u9fa5a-zA-Z0-9]+$");

#3


是要判断一定要由汉字,字母,数字这三部分组成才返回true?
如果是的话2楼的可以。

#4


引用 3 楼 huangwenquan123 的回复:
是要判断一定要由汉字,字母,数字这三部分组成才返回true?
如果是的话2楼的可以。


即可以是 汉字,字母,数字这三部分组成 或他们中的两部分组成
也可以是 单独的只有 汉字组成 字母组成 数字组成

#5


^[\dA-Za-z\u4e00-\u9fa5]+$
那你用1楼的就可以,加个A-Z

#6


引用 5 楼 huangwenquan123 的回复:
^[\dA-Za-z\u4e00-\u9fa5]+$
那你用1楼的就可以,加个A-Z


不好意思 分数不小心点错了,你这个是正确的,但是没法改了.... 正则表达式:验证字符串是否由汉字 数字或字母组成

#1


    public static bool CheckStrUserName(string strUserName)
    {
        //返回的结果
        bool strResult;

        // /([u4e00-u9fa5]|[a-zA-Z0-9]){6,20}/g
        //^[0-9a-za-zu4e00-u9fa5]+$
        //="^[a-zA-Z\u4e00-\u9fa5]+|[a-zA-Z\u4e00-\u9fa5]+[0-9]+$";
        // ^(?!\d)[a-zA-Z0-9\u4e00-\u9fa5]+$
        // /^[\u4e00-\u9fa5A-Za-z0-9\-\_]*$/
        //--  ^[\u4e00-\u9fa5],{0,}$


        Regex exStrUserName = new Regex(@"^[\da-z\u4e00-\u9fa5]+$");
        try
        {
            strResult = exStrUserName.Match(strUserName).Success;
        }
        catch
        {
            strResult = false;
        }
        return strResult;

    }

#2


Regex reg = new Regex(@"^(?![^\u4e00-\u9fa5]+$)(?![^a-zA-Z]+$)(?![^0-9]+$)[\u4e00-\u9fa5a-zA-Z0-9]+$");

#3


是要判断一定要由汉字,字母,数字这三部分组成才返回true?
如果是的话2楼的可以。

#4


引用 3 楼 huangwenquan123 的回复:
是要判断一定要由汉字,字母,数字这三部分组成才返回true?
如果是的话2楼的可以。


即可以是 汉字,字母,数字这三部分组成 或他们中的两部分组成
也可以是 单独的只有 汉字组成 字母组成 数字组成

#5


^[\dA-Za-z\u4e00-\u9fa5]+$
那你用1楼的就可以,加个A-Z

#6


引用 5 楼 huangwenquan123 的回复:
^[\dA-Za-z\u4e00-\u9fa5]+$
那你用1楼的就可以,加个A-Z


不好意思 分数不小心点错了,你这个是正确的,但是没法改了.... 正则表达式:验证字符串是否由汉字 数字或字母组成