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

解决方案 »

  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.   

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

  3.   

    /// <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;
    }
      

  4.   

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

  5.   

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