Java校验手机号和邮箱格式是否合法

import org.apache.commons.lang3.StringUtils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

    /**
     * 校验手机号
     *
     * @param phone 手机号
     * @return 是否合格
     */
    public String checkPhone(String phone) {
        String regex = "^[1]([3-9])[0-9]{9}$";
        if (StringUtils.isEmpty(phone)) return "手机号为空";
        else {
            if (phone.length() != 11) return "手机号长度错误";
            else {
                Pattern p = Pattern.compile(regex);
                Matcher m = p.matcher(phone);
                boolean isMatch = m.matches();
                if (isMatch) return null;
                else return "手机号格式错误";
            }
        }
    }

    /**
     * 校验邮箱
     *
     * @param email 邮箱
     * @return 是否合格
     */
    public boolean checkEmail(String email) {
        // 判断是否为空邮箱
        int k = 0;
        if (email == null) return false;
        /*
        单引号引的数据 是char类型的
        双引号引的数据 是String类型的
        单引号只能引一个字符
        而双引号可以引0个及其以上
         */
        // 判断是否有仅有一个@且不能在开头或结尾
        if (email.indexOf("@") > 0 && email.indexOf('@') == email.lastIndexOf('@') &&
                email.indexOf('@') < email.length() - 1)
            k++;
        // 判断"@"之后必须有"."且不能紧跟
        if (email.indexOf('.', email.indexOf('@')) > email.indexOf('@') + 1) k++;
        // 判断"@"之前或之后不能紧跟"."
        if (email.indexOf('.') < email.indexOf('@') - 1 || email.indexOf('.') > email.indexOf('@') + 1) k++;
        // @之前要有6个字符
        if (email.indexOf('@') > 5) k++;
        if (email.endsWith("com") || email.endsWith("org") || email.endsWith("cn") || email.endsWith("net")) k++;
        return k == 5;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。