Есть ли способ в javafx или f xml для проверки длины символа TextField? - PullRequest
0 голосов
/ 25 марта 2020

Текстовое поле, которое не принимает никаких символов, кроме числа [0-9] и его длины, в моем случае это 11, но после добавления {11} в выражении регулярного выражения это текстовое поле не принимает ничего. Пожалуйста помоги!

Код здесь:

public class NumberField extends JFXTextField {

        @Override
        public void replaceText(int i, int i1, String string){

            if (string.matches("[0-9]{11}") || string.isEmpty()) //{11} is length of number
                super.replaceText(i , i1 , string);

        }

1 Ответ

0 голосов
/ 26 марта 2020
public class ContactField extends JFXTextField {

/ * * * i - текущая длина / значение * i1 - предыдущая длина / значение * строка - значение / символ, т. Е. В данный момент набрано * * Здесь: * * string.matches [0-9], соответствует одиночному текущее значение ключа в выражении регулярного выражения (по одному за раз) * string.empty () используется для клавиши возврата * * /

@Override
public void replaceText(int i, int i1, String string) {

     if ((string.matches("[0-9]") || string.isEmpty()) && i <= 10) //for validating numbers length start from 0;
         super.replaceText(i, i1, string);
     }

/ * * Поддерживает значения prev и current при выбранном char ( по стрелкам клавиши как из середины) удаляется; * * * /

 @Override
    public void replaceSelection(String replacement) {

        super.replaceSelection(replacement);
    }
}
...