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);
}