User 14185916 Ответов: 3

Буквенно-цифровой текст с точечной проверкой


У меня есть требование к коду Java в поле имени пользователя, где я должен разрешить только буквенно-цифровые и точки, как показано ниже.

Валидация должна проверять следующие условия

abc.xyz.jk должно быть разрешено
xyz..kk.. не должно быть разрешено (последовательные точки не должны быть разрешены)
Только ... не должно быть разрешено (последовательные точки не должны быть разрешены)
Только. не должно быть позволено

Я пробовал проверить это с помощью метода с регулярным выражением, но он также допускает более одной точки.

Что я уже пробовал:

Я пробовал один метод, но я допускаю только точки, а также

3 Ответов

Рейтинг:
2

CPallini

Если подчеркивание приемлемо и конечная точка не разрешена (ваши требования не столь точны), то может подойти следующий код:

import java.util.regex.*;

class Up
{
  public static void main(String args[])
  {
    // input examples
    String[] unames = new String[]{"alpha.beta.gamma", "Foo_._Bar", "Hey.Joe.", "...", "."};
    Pattern pattern = Pattern.compile("^\\w+(\\.\\w+)*$");
    for (String uname : unames)
    {
      Matcher matcher = pattern.matcher(uname);
      String suitability = matcher.find() ? "good" : "bad";
      System.out.printf("Username '%s' is %s\n", uname, suitability);
    }
  }
}
Выход:
Username 'alpha.beta.gamma' is good
Username 'Foo_._Bar' is good
Username 'Hey.Joe.' is bad
Username '...' is bad
Username '.' is bad


Рейтинг:
1

OriginalGriff

Попробуйте регулярное выражение:

^(\w\.?)+$
должны делать это.


Рейтинг:
0

Patrice T

Регулярное выражение-это то, что вы ищете.

Всего лишь несколько интересных ссылок, которые помогут построить и отладить регулярное выражение.
Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
RegExr: Learn, Build, & Test RegEx[^]
Онлайн-тестер регулярных выражений и отладчик: PHP, PCRE, Python, Golang и JavaScript[^]
Этот пример показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение: Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]
Этот сайт также показывает регулярное выражение в красивом графике, но не может проверить, что соответствует регулярному выражению: Regexper[^]