正则表达式动态位数限制要怎么写?

我有一个正则密码验证:


/**
 * 校验密码:不包含特殊字符, 至少需要一个字母+数字,6-20位
 */
fun isPassword(password: String): Boolean {
    return Pattern.matches("^(?![0-9]+\$)(?![a-zA-Z]+\$)[0-9A-Za-z]{6,20}\$", password)
}

我想做成动态位数限制:


/**
 * 校验密码:不包含特殊字符, 至少需要一个字母+数字,6-20位
 * min: 最小位数
 * max: 最大位数
 */
fun isPassword(password: String, min: Int, max: Int): Boolean {
    return Pattern.matches("^(?![0-9]+\$)(?![a-zA-Z]+\$)[0-9A-Za-z]{min,max}\$", password)
}

需要怎么写?

你不是已经写出来了吗?