All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.nuls.core.model.FormatValidUtils Maven / Gradle / Ivy

package io.nuls.core.model;

import java.nio.charset.StandardCharsets;

/**
 * @author tag
 * */
public class FormatValidUtils {
    private static final String NULS = "NULS";

    /**
     *  Check the difficulty of the password
     *  length between 8 and 20, the combination of characters and numbers
     *  密码验证规则
     *  @param password   需验证的密码
     *  @return boolean
     */
    public static boolean validPassword(String password) {
        if (StringUtils.isBlank(password)) {
            return false;
        }
        if (password.length() < 8 || password.length() > 20) {
            return false;
        }
        if (password.matches("(.*)[a-zA-z](.*)")
                && password.matches("(.*)\\d+(.*)")
                && !password.matches("(.*)\\s+(.*)")
                && !password.matches("(.*)[\u4e00-\u9fa5\u3000]+(.*)")) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * 别名规则:只允许使用小写字母、数字、下划线(下划线不能在两端)1~20字节
     * @param alias  别名
     * @return       验证结果
     */
    public static boolean validAlias(String alias) {
        if (StringUtils.isBlank(alias)) {
            return false;
        }
        alias = alias.trim();
        byte[] aliasBytes = alias.getBytes(StandardCharsets.UTF_8);
        if (aliasBytes.length < 1 || aliasBytes.length > 20) {
            return false;
        }
        return alias.matches("^([a-z0-9]+[a-z0-9_]*[a-z0-9]+)|[a-z0-9]+${1,20}");
    }

    /**
     * token命名规则:只允许使用大、小写字母、数字、下划线(下划线不能在两端)1~20字节
     * @param name   token
     * @return       验证结果
     */
    public static boolean validTokenNameOrSymbol(String name) {
        if (StringUtils.isBlank(name)) {
            return false;
        }

        String upperCaseName = name.toUpperCase();
        if(upperCaseName.contains(NULS)) {
            return false;
        }

        byte[] aliasBytes = name.getBytes(StandardCharsets.UTF_8);
        if (aliasBytes.length < 1 || aliasBytes.length > 20) {
            return false;
        }
        return name.matches("^([a-zA-Z0-9]+[a-zA-Z0-9_]*[a-zA-Z0-9]+)|[a-zA-Z0-9]+${1,20}");
    }

    /**
     * 备注规则: 可以为空,或者不大于60字节
     * @param remark   备注
     * @return         验证结果
     */
    public static boolean validRemark(String remark) {
        if (null == remark) {
            return true;
        }
        remark = remark.trim();
        byte[] aliasBytes = remark.getBytes(StandardCharsets.UTF_8);
        return aliasBytes.length <= 60;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy