【问题标题】:Partial Display of email id in JSP. (Password Reset)在 JSP 中部分显示电子邮件 ID。 (重设密码)
【发布时间】:2013-08-20 08:41:55
【问题描述】:

当前情景

当用户尝试重设密码时,

输入帐号并提交。 (例如:123456789)

(帐号包含数据库中的电子邮件)。

然后显示“重置密码的说明已通过电子邮件发送到帐号:123456789 的存档地址”。

所以我正在尝试向用户显示部分 emailID。

点赞"Instructions to reset your password have been emailed to "Jo******pa@gmail.com" for account number :123456789".

目前我做的是。

In Action class: (ResetPasswordAction.java)
String email =**retriving email id**
at end 
request.setAttribute("email", email);
before forwarding.


In Jsp (Display after email sent)
<c:out value="${email}"/> 

工作正常。

现在我的问题:

1) 这是正确的方法吗?

2) * 如何用星号替换字符串(电子邮件)** 像 "Jo****pa@gmail.com" 。我正在尝试,但有什么简单的方法。 *Java 1.4

添加:

  String Str = "John.smithpa@gmail.com";
  String S=Str.replaceFirst("@(.*)","" );
  String mail=Str.replaceFirst("(.*)@","" );
  String trim=S.substring(2, S.length()-2);
  String star = trim.replaceAll(".", "*");
  String name= S.replaceAll(trim,star);
  String Disp=name+"@"+mail;
  System.out.println(Disp);

【问题讨论】:

    标签: java string jsp


    【解决方案1】:

    你可以像这样使用正则表达式:

    String email="abcdef@xyz.com";
    String str=email.replaceAll("(?<=..).(?=...*@)", "*");
    System.out.println(str);
    

    输出:

    ab**ef@xyz.com
    

    【讨论】:

    • 谢谢。简单而简短。
    【解决方案2】:

    对于问题 2: 我能想到的是使用正则表达式,如下所示:

               Pattern p = Pattern.compile("\\w{2}(.*)\\w{2}@.*");
               Matcher m = p.matcher(email);
               if (m.find(0)) {
                    String star = m.group(1).replaceAll(".", "*");
                    email = email.replace(m.group(1), star);
               }
    

    但您要确保电子邮件格式正确。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-11
      • 2017-08-30
      • 1970-01-01
      • 1970-01-01
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多