UserNameを検証するための正規表現を作成しています。ここで長さ範囲のUserNameのJava正規表現
ルールです:
- 長さ:6から20文字
- 手紙-ZA-Z
- で始める必要があります缶は-ZA-Z0-9とドットを(含まれています。)
- はここで2つの連続したドット
を持つことはできません、私が試したものです。
public class TestUserName {
private static String USERNAME_PATTERN = "[a-z](\\.?[a-z\\d]+)+";
private static Pattern pattern = Pattern.compile(USERNAME_PATTERN, CASE_INSENSITIVE);
public static void main(String[] args) {
System.out.println(pattern.matcher("user.name").matches()); // true
System.out.println(pattern.matcher("user.name2").matches()); // true
System.out.println(pattern.matcher("user2.name").matches()); // true
System.out.println(pattern.matcher("user..name").matches()); // false
System.out.println(pattern.matcher("1user.name").matches()); // false
}
}
私が使用したパターンは良好ですが長さの制約はありません。
パターンに{6,20}制約を追加しようとしましたが、失敗しました。
"[a-z](\\.?[a-z\\d]+)+{6,20}" // failed pattern to validate length
誰でもアイデアはありますか?
ありがとうございます!
を使用することができます '{6,20}'どこ – rock321987
範囲を追加することができません'{az}(\\。?[az \\ d] +){6,20}' – Andy
'{6,20}'のように定義することはできません。 '+'の後はバリデーターが気にかけているものです。しかし、それを削除してもそれを修正することはありません! '(.. +)'部分を繰り返すことができます。これはあなたが望む限り長くすることができます。 – usr2564301