0

ユーザーをログに記録するために、wicket1.5アプリでEmailTextFieldを使用しています。GMailのエイリアスによると、電子メールには+記号が含まれている可能性がありますが、改札では許可されていません。バリデーターで余分なシンボルを受け入れる方法はありますか?

4

2 に答える 2

1

独自のバリデータを作成する必要があります。

public class GMailAddressValidator extends PatternValidator {

    public GMailAddressValidator() {
        super("^[_A-Za-z0-9-+]+(\\.[_A-Za-z0-9-+]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*((\\.[A-Za-z]{2,}){1}$)",
                Pattern.CASE_INSENSITIVE);
    }
}

ここでは、電子メールを検証するために元の Wicket 正規表現に 2 つのプラスを追加するだけです (プラスを太字で強調しようとしました)。

^[_A-Za-z0-9- + ]+(\\.[_A-Za-z0-9- + ]+)*@[A-Za-z0-9-]+(\\.[A- Za-z0-9-]+)*((\\.[A-Za-z]{2,}){1}$)

その後、バリデーターで EmailTextField の代わりに単純な TextField を使用できます。そのように:

new TextField<String>("email").add(new GMailAddressValidator())
于 2012-10-03T09:47:34.197 に答える
0

次のように HTML5 検証をオーバーライドする必要があると思います: Override html5 validation、コンポーネントは入力タイプをメールに設定するだけです。ウィケット検証を追加するとは思いません。js オーバーライドを追加したくない場合は、ウィケット TextField 用の独自のバリデーターを作成するのが最善の方法です。

于 2012-10-03T09:07:35.893 に答える