Я предлагаю вам сделать две проверки - одну на длину и одну на содержание, основываясь на том факте, что вам, вероятно, нужна только одна точка в имени, а не любое количество точек. Я предполагаю, что имена типа username
и user.name
являются единственными допустимыми форматами.
Это должно получить содержимое (но также допускает подчеркивание):
^\w+(\.\w+)?$
Если вам не нужны подчеркивания, вы должны использовать [0-9a-zA-Z]+
вместо \w+
. Для объяснения он будет соответствовать любой строке, состоящей из одного или нескольких символов слова, за которыми следуют ровно 0 или 1 точки, за которой следуют один или несколько символов слова. Он также должен соответствовать началу и концу строки, т. Е. Никакие другие символы не допускаются в строке.
Тогда вам нужно получить длину только с помощью простой проверки длины.