ユーザー名を検証する関数を構築しています。この場合、アルファベット文字のみを受け入れたいと考えています。提供されたユーザー入力をこの正規表現と照合しています。
[1-9!@#$%&*()_+=|<>?{}\\[\\]~-,]
これは、正規表現を利用する方法です。
public static String purgeInvalidLogin(String failedLogin, String pattern) {
Pattern special = Pattern.compile (pattern);
String purgedLogin = failedLogin.replaceAll(special.pattern(), ""); // remove any special characters before moving on
purgedLogin = StringUtils.deleteWhitespace(purgedLogin);
return purgedLogin;
}
ただし、これを実行しようとすると、次のメッセージが表示されます。
インデックス 25 付近の不正な文字範囲 [!@#$%&*()_+=|<>?{}[]~-,] ^
コンマを追加したときにのみ発生しました。また、式 [!@#$%&*()_+=|<>?{}[]~-\,] (コンマをエスケープ) を試してみましたが、役に立ちませんでした。上記の方法を使用して、正規表現を適切に使用してコンマを除外する方法を考えています。
前もって感謝します。