我根本没有使用正则表达式,所以我很难排除故障.我希望正则表达式只在包含的字符串是所有数字时匹配; 但是下面的两个例子是匹配一个包含所有数字的字符串加上一个等号"1234 = 4321".我确信有一种方法可以改变这种行为,但正如我所说,我从未真正对正则表达式做过多少工作.
string compare = "1234=4321";
Regex regex = new Regex(@"[\d]");
if (regex.IsMatch(compare))
{
//true
}
regex = new Regex("[0-9]");
if (regex.IsMatch(compare))
{
//true
}
Run Code Online (Sandbox Code Playgroud)
如果重要,我正在使用C#和.NET2.0.
我想创建一个只接受特定范围内的数值的TextBox.实现此类TextBox的最佳方法是什么?
我想到了派生TextBox并覆盖TextProperty的验证和强制.但是,我不知道如何做到这一点,我知道通常不建议派生WPF控件.
private void textBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
int result;
if (!validateStringAsNumber(e.Text,out result,false))
{
e.Handled = true;
}
}
Run Code Online (Sandbox Code Playgroud)
(validateStringAsNumber是我主要使用Int.TryParse的函数)
一些建议的解决方案可能更好,但对于我需要的简单功能,这个解决方案是最容易和最快的,同时足以满足我的需求.