原文:
正则表达式——WPF输入控件TextBox 限定输入特定字符
概念:
正则表达式是对字符串操作的一种逻辑公式,
就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,
这个“规则字符串”用来表达对字符串的一种过滤逻辑。
目的:
给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
1. 验证给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
应用示例:
1. WPF 输入控件 TextBox 限定输入特定字符;
步骤一:禁用输入法
<Window xmlns:input="clr-namespace:System.Windows.Input;assembly=PresentationCore">
<TextBox input:InputMethod.IsInputMethodEnabled="False"/>
</Window>
步骤二:监测 TextBox 的 PreviewTextInput事件
private void TextBox_PreviewTextInput(object sender, System.Windows.Input.TextCompositionEventArgs e)
{
Regex re = new Regex("[^A-F0-9]"); // 只允许输入大写字母A~F和数字0~9
e.Handled = re.IsMatch(e.Text);
}
{
Regex re = new Regex("[^A-F0-9]"); // 只允许输入大写字母A~F和数字0~9
e.Handled = re.IsMatch(e.Text);
}
注:e.Text为当前输入的单个字符,当该字符与正则表达式 re 匹配时 e.Handled = true,TextBox的TextInput事件被中断(输入终止)。