我有一个输入字段,网站管理员将复制有权访问该网站的允许用户/域列表。
列表必须支持以下格式:user@domain.com, @ domain.com, @ *。
这个想法是这种白名单字符串可以支持5000封电子邮件,必须是支持的格式,所以我需要逐一检查才能将其保存到数据库。
我无法使用Threads,因为我需要在保存之前从BackEnd获得答案。
我已经有了这样的正则表达式,我担心的是这样做的更好方法(考虑性能)。
目前我有一个StringTokenizer并逐个比较带有正则表达式的电子邮件,但此时我只支持1000个字符。
我在想是否需要支持最多可达640000个字符的5000个电子邮件地址。
这是我目前拥有的Java代码段:
public boolean isValidWhitelist(String value){
boolean isValid = true;
// Split the white list.
StringTokenizer st = new StringTokenizer(value, ",");
// Verify each whitelisted email.
while (st.hasMoreTokens()) {
String valueEmail = st.nextToken().trim();
if (!valueEmail.equals("*@*")) {
if (!validateWhitelist(valueEmail)) {
isValid = false;
break;
}
}
}
return isValid;
}
然后硬币的另一面将是用户登录时。我需要验证是否针对5000封电子邮件中的一封列入白名单。
有没有“正确”的方法来做到这一点