почему Vaadin 7 PasswordField валидация не работает - PullRequest
0 голосов
/ 20 мая 2018

Для стандартных регулярных выражений Java, работающих нормально: -

    Pattern pattern = Pattern.compile("\\s");
    Matcher matcher = pattern.matcher("space here");
    Matcher matcher2 = pattern.matcher("noSpaceHere");
    boolean foundSpace = matcher.find();
    boolean noSpace = matcher.find();
    System.out.println("Space found "+foundSpace);
    System.out.println("Any space found "+noSpace);

Я предполагаю, что это должно быть то же самое для vadin.Но это не работает: -

PasswordField field = new PasswordField((String) processConfig.get("name"));
field.setWidth("100%");
field.addValidator(new RegexpValidator("\\s", "Whitespace is not allowed for password field"));

Снимок экрана: - enter image description here

Независимо от того, что я вводю в это поле PasswordField, оно всегда сообщает о недействительном.В этом случае я дал «abcd» в качестве ввода.Мое намерение состоит в том, чтобы не допускать пробелов в поле пароля.Как это сделать для Vaadin PasswordField?

1 Ответ

0 голосов
/ 20 мая 2018

Попробуйте регулярное выражение, которое допускает 0-n любого другого символа, кроме пробела:

field.addValidator(new RegexpValidator("[^\\s]*", "Whitespace is not allowed for password field"));
...