C#中怎样判断一个字符串中得字符是汉字还是字母
我是新手,想制作一个个人简介,输入姓名要判断输入的字符串是不是汉字,不知道怎么能得,各位大哥帮帮忙,保证给分 --------------------编程问答--------------------
/// <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之间,它就是汉字 --------------------编程问答--------------------
你的参数是字符串,不是数组,str[0]这样写,可以吗? --------------------编程问答-------------------- 把字符串一个个截取,然后存到一个字符串数组,遍历数组,用1楼的方法去判断 --------------------编程问答--------------------
/// <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;
}
++ --------------------编程问答--------------------
是unicode才对吧。 --------------------编程问答-------------------- --------------------编程问答-------------------- <input
onkeyup="this.value=this.value.replace(/[^\u4E00-\u9FA5]/g,'')"
onbeforepaste="clipboardData.setData('text',
clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))">
这个是限定只能输入汉字的 --------------------编程问答-------------------- 是unicode字符,简单型的.
string s = textBox1.Text;
foreach (char c in s)
{
int i=(int)c;
if (i < 0x4e00 || i > 0x9fa5)
{
MessageBox.Show("名字非法!");
}
}
补充:.NET技术 , C#