0

このコードスニペットを電子メールの検証に使用しようとしましたが、機能しないか、検証が表示されないようです。

   EmailAddressEditField email=new EmailAddressEditField("Email Address: ", "");

        String address =email.getText();
        int at = address.indexOf("@");
        int len = address.length();
        String host = address.substring(at + 1, len);
        int dot = host.lastIndexOf('.');
        len = host.length();

        if (at <= 0 || at > len - 6  && dot < 0 || dot >= len - 3)
            Dialog.alert("Invalid email");
        else
        {
             if (host.indexOf("..") >= 0)
             {
                 Dialog.alert("Invalid email");
             }
             else
             {
                 //correct mail id.. continue your process

             }
        }

追加した後(メール); フォームを開くとすぐに無効なメールのダイアログエラーが表示されます。フィールドに間違った入力が入力されるとすぐに検証が表示される、テキストフィールド/メールアドレス編集フィールドの適切なメール検証を提案してください。ありがとうございます。

注:上記のコードは、stackoverflowからの同様のパターンの以前のクエリから取得されました。http://stackoverflow.com/questions/7580257/validation-for-email-in-blackberry同じ回答へのリダイレクトを提案しないでください。ありがとうございます。

4

2 に答える 2

2

BlackBerry でどのように機能するかはわかりませんが、メールの検証には常に正規表現を使用してきました。ここに例があります

于 2012-05-11T17:38:51.080 に答える
0

このコード スニペットを試してください (コードに似ていますが、わずかに変更されています)。

/**
   * Validates an email address. Checks that there is an "@"
   * in the field and that the address ends with a host that
   * has a "." with at least two other characters after it and
   * no ".." in it. More complex logic might do better.
   */
  public boolean isDataValid() {
    String address = email.getText();
    int at = address.indexOf("@");
    int len = address.length();
    if (at <= 0 || at > len - 6) return false;
      String host = address.substring(at + 1, len);
    len = host.length();
    if (host.indexOf("..") >= 0) return false;
    int dot = host.lastIndexOf(".");
    return (dot > 0 && dot <= len - 3);
  }

次に、このメソッドを呼び出して、結果に基づいて true または false を返します。

于 2013-01-10T15:09:05.220 に答える