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
你的参数是字符串,不是数组,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
++
#6
是unicode才对吧。
#7
![C#中怎样判断一个字符串中得字符是汉字还是字母 C#中怎样判断一个字符串中得字符是汉字还是字母](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OW1iM0oxYlM1amMyUnVMbTVsZEM5UWIybHVkRVp2Y25WdEwzVnBMM05qY21sd2RITXZZM05rYmk5UWJIVm5hVzR2TURBekwyMXZibXRsZVM4d0xtZHBaZz09.jpg?w=700&webp=1)
#8
<input
onkeyup="this.value=this.value.replace(/[^\u4E00-\u9FA5]/g,'')"
onbeforepaste="clipboardData.setData('text',
clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))">
这个是限定只能输入汉字的
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
你的参数是字符串,不是数组,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
++
#6
是unicode才对吧。
#7
![C#中怎样判断一个字符串中得字符是汉字还是字母 C#中怎样判断一个字符串中得字符是汉字还是字母](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OW1iM0oxYlM1amMyUnVMbTVsZEM5UWIybHVkRVp2Y25WdEwzVnBMM05qY21sd2RITXZZM05rYmk5UWJIVm5hVzR2TURBekwyMXZibXRsZVM4d0xtZHBaZz09.jpg?w=700&webp=1)
#8
<input
onkeyup="this.value=this.value.replace(/[^\u4E00-\u9FA5]/g,'')"
onbeforepaste="clipboardData.setData('text',
clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))">
这个是限定只能输入汉字的
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("名字非法!");
}
}