Xamarin. Android как ограничить текстовое поле редактирования, чтобы разрешить только 1 число перед десятичным и 2 числа после десятичного? - PullRequest
0 голосов
/ 09 мая 2020

Есть ли способ сделать это?

Например, я хочу, чтобы максимальное число перед десятичной дробью было 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;
    }
}

Но как я могу изменить это, чтобы ограничить количество чисел до десятичной дроби, а не только после десятичной?

Спасибо

1 Ответ

0 голосов
/ 11 мая 2020

Вы можете использовать регулярное выражение, как показано ниже:

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

enter image description here

...