1

パスワードフィールドを検証するためにstruts 2アノテーション検証を使用していますが、コーディングが正しいものを与えるとエラーが表示されます

@RequiredStringValidator(message = "Please provide a password")
    @StringLengthFieldValidator(minLength="7",maxLength="15",message="The Password should be minmum 7 character and maximum 15 charcters")
    @RegexFieldValidator(expression = "^[0-9A-Z]+$", message = "Password atleast have one Capital and one Number")

何か案が?

4

2 に答える 2

2

彼は本当に必要だと思います(テストされていません):^.*(?=.{7,15})(?=.*\d)(?=.*[a-zA-Z]).*$

しかし、私は正規表現を使用しません...アクションに検証メソッドを追加し、要件に対してチェックするだけです。単純なループとカウンターは、ほとんどの人にとって、あなた自身が難しい正規表現よりも理解しやすいでしょう。構築する必要があり、後で読むのが難しくなります。

たとえば、上記の怪物を変更したい場合はどうしますか? 数字と文字のカウンターを使用して文字列の文字をループする場合、非常に理解しやすく、選択する必要がある大文字、小文字、および記号を追加することを考慮に入れるのはかなり無謀です。

于 2013-02-18T23:36:16.283 に答える
1

探している正規表現は次のとおりです。

^(.*[0-9].*[A-Z].*)|(.*[A-Z].*[0-9].*)$

あなたが提供したもの:

^[0-9A-Z]+$

数字および/または大文字のみで構成されるパスワードに一致します

于 2013-02-18T12:30:39.430 に答える