如何验证来自JTextField的电子邮件

时间:2014-02-07 11:32:02

标签: java swing validation jtextfield joptionpane

就像标题所说的那样,如果jTextField中缺少特定字符,我想显示jOptionPane。假设这个字符是“@”。

我试过这样的事情:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {   
   String email = (String)txtEmail.getText();
   if (!email.equals(email) && email.equals("@")){
      jOptionPane1.showMessageDialog(null, "Please"); 
   }
}

然而,我无法让它发挥作用。 我也尝试使用contains()contentEquals(),但我不知道如何正确使用它,所以我更改了代码。 在Google上搜索也无济于事,因为我无法找到我想要的内容。 请考虑帮助。顺便说一下,我正在使用netbeans。

2 个答案:

答案 0 :(得分:3)

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {   
    String email = txtEmail.getText();
    if (!email.contains("@")) {
        jOptionPane1.showMessageDialog(null, "Please"); 
    }
}

答案 1 :(得分:3)

如果您要验证电子邮件,请使用String.matches(regex)

以下是来自this site的电子邮件正则表达式验证模式的实现。关于正则表达式的解释也可以在网站上找到。

private static final String EMAIL_PATTERN = 
    "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
    + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";

if (!email.matches(EMAIL_PATTERN)) {}