这里有一段代码。它只允许您在TextBox中输入东方字符(日语、中文等)。但如何做相反的事情呢?是否允许输入除这些字符以外的所有字符?
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (Regex.IsMatch(textBox1.Text, "[^\u2E80-\u9FFF]"))
{
textBox1.Text = textBox1.Text.Remove(textBox1.Text.Length - 1);
textBox1.SelectionStart = textBox1.TextLength;
}
}
1条答案
按热度按时间f3temu5u1#
要允许输入除东方字符(日语、中文等)以外的所有字符,可以修改正则表达式以匹配不在指定Unicode范围内的任何字符。您可以通过将正则表达式模式从**"[^\u2E80-\u9FFF]”更改为“[\u0000-\u2E7F\u9FFF-\uFFFF]”**来完成此操作。
下面是修改后的代码,允许输入除东方字符以外的所有字符:
此代码使用求反字符类“[^\u2E80-\u9FFF]”来匹配不在指定Unicode范围内的任何字符。范围现在反转为**[\u0000-\u2E7F\u9FFF-\uFFFF]**以匹配不在东方字符范围内的任何字符。如果输入字符串包含任何东方字符,则代码将从TextBox中删除最后一个字符,并将光标设置到剩余文本的末尾。