Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 黑莓应用中的电子邮件验证_Email_Blackberry_Java Me_Email Validation - Fatal编程技术网

Email 黑莓应用中的电子邮件验证

Email 黑莓应用中的电子邮件验证,email,blackberry,java-me,email-validation,Email,Blackberry,Java Me,Email Validation,我曾尝试使用此代码段进行电子邮件验证,但它似乎不起作用或显示任何验证 EmailAddressEditField email=new EmailAddressEditField("Email Address: ", ""); String address =email.getText(); int at = address.indexOf("@"); int len = address.length(); String ho

我曾尝试使用此代码段进行电子邮件验证,但它似乎不起作用或显示任何验证

   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

             }
        }
EmailAddressEditField email=新的EmailAddressEditField(“电子邮件地址:”,”);
字符串地址=email.getText();
int at=地址。indexOf(“@”);
int len=address.length();
字符串主机=地址。子字符串(at+1,len);
int dot=host.lastIndexOf('.');
len=host.length();
if(在len-6和&dot<0 | | dot>=len-3时)
Dialog.alert(“无效电子邮件”);
其他的
{
if(host.indexOf(“…”)>=0)
{
Dialog.alert(“无效电子邮件”);
}
其他的
{
//正确的邮件id。继续您的过程
}
}
在我添加(电子邮件)之后;表单一打开,我就会看到一个无效电子邮件的对话框错误。请建议我对textfield/emailaddresseditfield进行适当的电子邮件验证,该字段在输入错误时立即显示验证。谢谢


注:以上代码取自stackoverflow之前的类似模式查询。http://stackoverflow.com/questions/7580257/validation-for-email-in-blackberry 不要建议重定向到同一个答案。谢谢。

我不确定它在BlackBerry上是如何工作的,但对于电子邮件验证,我总是使用regexp表达式

试试这段代码(与您的代码类似,但稍作修改):

/**
*验证电子邮件地址。检查是否存在“@”
*在字段中,地址以
*有一个“.”,后面至少有两个字符,并且
*不在里面。更复杂的逻辑可能会更好。
*/
公共布尔值isDataValid(){
字符串地址=email.getText();
int at=地址。indexOf(“@”);
int len=address.length();
如果(在len-6处)返回false;
字符串主机=地址。子字符串(at+1,len);
len=host.length();
如果(host.indexOf(“…”)>=0)返回false;
int dot=host.lastIndexOf(“.”);

返回(dot>0&&dot我不太喜欢这种开发方法。尽管感谢您的回复。这是验证电子邮件地址的正确方法。我在上面指出,我正在寻找与该链接不同的答案。这里提供的答案在运行时给了我一个错误。请阅读查询在否决投票前正确。您的目标相互矛盾。空字符串是无效的电子邮件地址,但您希望“在键入错误输入时立即显示验证”这正是你的代码所做的。你的目标的问题是,有效电子邮件地址的前缀无效,因此你不能强迫用户在任何时候都在邮箱中有一封有效的电子邮件。我现在对这个电子邮件实现的事情感到更加困惑。你知道有任何其他强制电子邮件验证的方法吗。
/**
   * 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);
  }