C#中怎样判断一个字符串中得字符是汉字还是字母

时间:2023-01-09 23:24:43
   我是新手,想制作一个个人简介,输入姓名要判断输入的字符串是不是汉字,不知道怎么能得,各位大哥帮帮忙,保证给分

9 个解决方案

#1



/// <summary>
        /// 检测一个字符串是不是以汉字开始
        /// </summary>
        /// <param name="str">要检测的字符串</param>
        /// <returns>是否为汉字开始</returns>
        private bool isChinese(string str)
        {
            if ((int)str[0] > 0x4E00 && (int)str[0] < 0x9FA5)
            {
                return true;
            }
            else
            {
                return false;
            }
        }


这段代码的简单的意思就是如果一个字符的ASCII码在0x4E00~0x9FA5之间,它就是汉字

#2


引用 1 楼 zzt369880281 的回复:
C# code


/// <summary>
        /// 检测一个字符串是不是以汉字开始
        /// </summary>
        /// <param name="str">要检测的字符串</param>
        /// <returns>是否为汉字开始</returns>
        private bool isChinese(s……

你的参数是字符串,不是数组,str[0]这样写,可以吗?

#3


把字符串一个个截取,然后存到一个字符串数组,遍历数组,用1楼的方法去判断

#4


/// <summary>
/// 验证字符串是否是中文。
/// </summary>
/// <param name="checkedStr">需验证的字符串。</param>
/// <param name="allMatch">是否完全匹配。当值为true时,全部是中文;当值为false时,仅含有中文。</param>
/// <returns></returns>
public static bool IsChinese(string checkedStr, bool allMatch)
{
string pattern;
if (allMatch)
pattern = @"^[\u4e00-\u9fa5]+$";
else
pattern = @"[\u4e00-\u9fa5]";
if (Regex.IsMatch(checkedStr, pattern))
return true;
else
return false;
}

#5


引用 4 楼 dalmeeme 的回复:
C# code

/// <summary>
            /// 验证字符串是否是中文。
            /// </summary>
            /// <param name="checkedStr">需验证的字符串。</param>
            /// <param name="allMatch">是否完全匹配。当值为true时,全部是……


++

#6


引用 1 楼 zzt369880281 的回复:
这段代码的简单的意思就是如果一个字符的ASCII码在0x4E00~0x9FA5之间,它就是汉字


是unicode才对吧。

#7


C#中怎样判断一个字符串中得字符是汉字还是字母

#8


 <input   
                onkeyup="this.value=this.value.replace(/[^\u4E00-\u9FA5]/g,'')"  
                onbeforepaste="clipboardData.setData('text',   
                clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))">  
这个是限定只能输入汉字的 

#9


是unicode字符,简单型的.
 string s = textBox1.Text;
            foreach (char c in s)
            {
                int i=(int)c;
                if (i < 0x4e00 || i > 0x9fa5)
                {
                    MessageBox.Show("名字非法!");
                }
            }

#1



/// <summary>
        /// 检测一个字符串是不是以汉字开始
        /// </summary>
        /// <param name="str">要检测的字符串</param>
        /// <returns>是否为汉字开始</returns>
        private bool isChinese(string str)
        {
            if ((int)str[0] > 0x4E00 && (int)str[0] < 0x9FA5)
            {
                return true;
            }
            else
            {
                return false;
            }
        }


这段代码的简单的意思就是如果一个字符的ASCII码在0x4E00~0x9FA5之间,它就是汉字

#2


引用 1 楼 zzt369880281 的回复:
C# code


/// <summary>
        /// 检测一个字符串是不是以汉字开始
        /// </summary>
        /// <param name="str">要检测的字符串</param>
        /// <returns>是否为汉字开始</returns>
        private bool isChinese(s……

你的参数是字符串,不是数组,str[0]这样写,可以吗?

#3


把字符串一个个截取,然后存到一个字符串数组,遍历数组,用1楼的方法去判断

#4


/// <summary>
/// 验证字符串是否是中文。
/// </summary>
/// <param name="checkedStr">需验证的字符串。</param>
/// <param name="allMatch">是否完全匹配。当值为true时,全部是中文;当值为false时,仅含有中文。</param>
/// <returns></returns>
public static bool IsChinese(string checkedStr, bool allMatch)
{
string pattern;
if (allMatch)
pattern = @"^[\u4e00-\u9fa5]+$";
else
pattern = @"[\u4e00-\u9fa5]";
if (Regex.IsMatch(checkedStr, pattern))
return true;
else
return false;
}

#5


引用 4 楼 dalmeeme 的回复:
C# code

/// <summary>
            /// 验证字符串是否是中文。
            /// </summary>
            /// <param name="checkedStr">需验证的字符串。</param>
            /// <param name="allMatch">是否完全匹配。当值为true时,全部是……


++

#6


引用 1 楼 zzt369880281 的回复:
这段代码的简单的意思就是如果一个字符的ASCII码在0x4E00~0x9FA5之间,它就是汉字


是unicode才对吧。

#7


C#中怎样判断一个字符串中得字符是汉字还是字母

#8


 <input   
                onkeyup="this.value=this.value.replace(/[^\u4E00-\u9FA5]/g,'')"  
                onbeforepaste="clipboardData.setData('text',   
                clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))">  
这个是限定只能输入汉字的 

#9


是unicode字符,简单型的.
 string s = textBox1.Text;
            foreach (char c in s)
            {
                int i=(int)c;
                if (i < 0x4e00 || i > 0x9fa5)
                {
                    MessageBox.Show("名字非法!");
                }
            }