当前位置: 首页 > 知识库问答 >
问题:

Regex将输入限制为纬度(以十进制为单位)文本框

邓光赫
2023-03-14

我有一个带有文本框的WPF应用程序,我的用户将在其中输入以十进制为单位的纬度值(精度高达7位数)。当然,有效的纬度范围是-90.0000000到90.0000000。我试图创建一个regex,通过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);
    }

我当前的regex只允许输入数字,但还有一些其他限制,我也需要强制执行,比如:

    null
    null

我能仅仅通过修改我的regex来实现这些额外的限制吗?如果是,怎么做?谢了!

共有1个答案

商松
2023-03-14

虽然您的问题是如何使用regex验证latitude,但似乎更好的方法是使用Decimal.TryParse。

 public static bool ValidateLatitudeString(string decimalString)
    {
        decimal validLatitude;
        if (decimal.TryParse(decimalString, out validLatitude))
        {
            if (validLatitude >= -90.0M && validLatitude <= 90.0M)
            {
                return true;
            }
        }

        return false;
    }
 类似资料:
  • 问题内容: 我已经找到了很多关于如何在Objective-C中执行此操作的指南,但是我希望看到一种更加面向Swift的方法。 我有一个UITextField,用户可以在其中输入货币价格。文本字段将调用小数键盘。但是,在iPad上,出现的键盘具有整个范围的非十进制符号。 基本上,对于每一次按键,我都希望不可能在该字段中键入非数字或超出单个小数的任何内容。如果键入了一个十进制,我想使其不可能输入第二个

  • 我需要转换十六进制- 当我运行这个错误实际上是显示我需要的值但我不能得到它 groovy.lang.的方法:静态java.lang.我nteger.parseInt()适用于参数类型:(java.math.大整数,java.lang.整数)值:[28855032353026779507009821653742961358,...]可能的解决方案:parseInt(java.lang.String,

  • 问题内容: 我这里有一个将十进制转换为十六进制的函数,但它以相反的顺序打印。我该如何解决? 问题答案: 如果要自己编写此代码而不是使用内置函数,则可以在打印当前数字之前简单地进行递归调用:

  • 问题内容: 我用来处理AngularJS中的十进制输入。 如果我使用该选项,它几乎可以按预期工作。对于两个小数,输入如“ 100.333”将转换为“ 100.33”。 在我的区域中,逗号用作小数点分隔符,但我网站上的输入应使用点作为小数点分隔符-就像该插件一样。没关系。但是,我希望将“ 100,33”之类的输入转换为“ 100.33”。 我怎样才能做到这一点? 问题答案: 恐怕我不熟悉:( 但是,

  • 用户用十六进制或二进制输入一个数字(必须以0x或0b为前缀,如果没有给出错误信息) 我不能用基数,我只是用整数。parseInt(s) 我不知道怎样才能使这个计划奏效。。请帮帮我,我还缺什么?

  • 我想知道如何将舞蹈方法的十进制结果包含到灯光方法中。例如,在这个程序中,如果我输入5F,十进制结果将是95。我希望95在light方法中显示为静态int变量,以便转换为二进制数。如果你能告诉我如何将十六进制数限制在2位数以内,那也会很有帮助。感谢阅读! } }