Beanに変数名があります。 @Pattern
検証を追加して、英数字のみを受け入れたい。
現在、私はこれを持っています。
@NotNull
@Pattern(regexp = "{A-Za-z0-9}*")
String name;
しかし、エラーはInvalid regular expression.
でした[A-Za-z0-9]
を試しました。しかし、これも機能していません。エラーはありません。有効な入力はすべて失敗として表示されます。
このパターンを試してみます:^[A-Za-z0-9]*$
または^[A-Za-z0-9]+$
は、空の結果を回避します。
文字列に特定の文字のみが含まれていることを確認する場合は、アンカー(^
は文字列の先頭、$
(文字列の最後))パターンがすべての文字列に一致することを確認します。
中括弧は、量を書くためだけのものです。例:2つのa
が必要です:a{2}
中に文字を入れることはできません。中括弧内の文字に出会うことができるのは、Unicode文字クラスを使用する場合のみです:\p{L}
、\p{Greek}
、\p{Arabian}
、...
さらに、中括弧、つまりAlnumで使用できる文字クラスを使用できます。たとえば、長さが1〜32文字の英数字の場合:
@Pattern(regexp = "^[\\p{Alnum}]{1,32}$")
https://docs.Oracle.com/javase/7/docs/api/Java/util/regex/Pattern.html を参照してください