【问题标题】:Xamarin.Android how to restrict edit text field to only allow 1 number before decimal and 2 numbers after decimal?Xamarin.Android如何限制编辑文本字段只允许小数点前1个数字和小数点后2个数字?
【发布时间】:2020-05-09 08:47:50
【问题描述】:

有没有办法做到这一点?

例如,我希望小数点前的最大数字为 9。

允许的数字示例:

1.56, 3.68, 9.9, 2.1、

我已经设置了一个小数输入过滤器,允许在小数点后最多输入 2 个数字:

class DecimalFilter : Java.Lang.Object, IInputFilter
{
    //Pattern mPattern;
    String regex = "[0-9]+((\\.[0-9]{0," + (2 - 1) + "})?)||(\\.)?";
    public DecimalFilter(int digitsAfterZero)
    {
        //mPattern = Pattern.compile("[0-9]+((\\.[0-9]{0," + (digitsAfterZero - 1) + "})?)||(\\.)?");
        regex = "[0-9]+((\\.[0-9]{0," + (digitsAfterZero - 1) + "})?)||(\\.)?";
    }

    public Java.Lang.ICharSequence FilterFormatted(Java.Lang.ICharSequence source, int start, int end, ISpanned dest, int dstart, int dend)
    {
        if (System.Text.RegularExpressions.Regex.IsMatch(dest.ToString(), regex))
        {
            return new Java.Lang.String(string.Empty);
        }
        return null;
    }
}

但是我如何修改它以限制小数点前的数字数量,而不仅仅是小数点后的数量?

谢谢

【问题讨论】:

    标签: xamarin.android android-edittext decimalformat


    【解决方案1】:

    你可以像下面这样使用正则表达式:

    ^\d{0,1}(\.\d{1,2})?$
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多