【问题标题】:How to validate an email from JTextField如何验证来自 JTextField 的电子邮件
【发布时间】:2014-03-04 19:12:18
【问题描述】:

正如标题所说,如果 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。

【问题讨论】:

    标签: java swing validation jtextfield joptionpane


    【解决方案1】:
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {   
        String email = txtEmail.getText();
        if (!email.contains("@")) {
            jOptionPane1.showMessageDialog(null, "Please"); 
        }
    }
    

    【讨论】:

    • 谢谢! :D 我会记住的。
    • 出于兴趣,您在哪里使用包含?
    • 我如何使用它导致我改变它的包含?像这样if (!email.contains(email + "@"))
    【解决方案2】:

    如果您要验证电子邮件,请使用 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)) {}
    

    【讨论】:

      猜你喜欢
      • 2022-11-17
      • 1970-01-01
      • 2015-07-10
      • 1970-01-01
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 2021-07-09
      • 1970-01-01
      相关资源
      最近更新 更多