【发布时间】:2021-01-24 17:54:28
【问题描述】:
我有一个带有文本框的 WPF 应用程序,我的用户将在其中输入十进制度的纬度值(高达 7 位精度)。当然,有效纬度范围从 -90.0000000 到 90.0000000。我正在尝试创建一个正则表达式来限制通过 PreviewTextInput 事件对文本框的输入,类似于:
private void latitudeTextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
e.Handled = !ValidateDecimalString(e.Text);
}
public static bool ValidateDecimalString(string decimalString)
{
Regex regex = new Regex("[^0-9]+");
return !regex.IsMatch(decimalString);
}
我当前的正则表达式只允许输入数字,但我还需要执行一些其他限制,例如:
- 纬度可能是负数,所以我需要考虑减号(“-”),但前提是它作为第一个字符出现
- 纬度只能包含一个小数点(“.”)
有效纬度值示例:
- 90
- 90.0
- -90.0000000
我可以通过修改我的正则表达式来实现这些额外的限制吗?如果是这样,怎么做?谢谢!
【问题讨论】: