util-helpers
Version:
103 lines (102 loc) • 3.32 kB
TypeScript
type Options = {
level?: number;
ignoreCase?: boolean;
special?: string;
};
/**
* @typedef {Object} PasswordContaines - 验证密码的包含内容
* @property {boolean} number - 包含数字
* @property {boolean} lowerCaseLetter - 包含小写字母
* @property {boolean} upperCaseLetter - 包含大写字母
* @property {boolean} specialCharacter - 包含特殊字符
* @property {boolean} unallowableCharacter - 包含非法字符
*/
/**
* @typedef {Object} ValidatePasswordReturn - 验证结果
* @property {boolean} validated - 验证结果,根据密码强度、是否包含非法字符得出
* @property {number} level - 强度级别,包含数字/大小写字母/特殊字符
* @property {PasswordContaines} containes - 包含内容
*/
/**
* 验证密码(数字、大小写字母、特殊字符、非法字符)
*
* @alias module:Validator.validatePassword
* @since 3.7.0
* @see {@link https://baike.baidu.com/item/ASCII#3 ASCII}
* @param {string} value 要检测的值
* @param {Object} [options] 配置项
* @param {number} [options.level=2] 密码强度,默认`2`。`1`-包含一种字符 `2`-包含两种字符 `3`-包含三种字符。(大写字母、小写字母、数字、特殊字符)
* @param {boolean} [options.ignoreCase=false] 是否忽略大小写,默认`false`。如果为`ture`,大小写字母视为一种字符
* @param {string} [options.special="!@#$%^&*()-=_+[]\|{},./?<>~"] 支持的特殊字符,默认`!@#$%^&*()-=_+[]\|{},./?<>~`
* @returns {ValidatePasswordReturn} 验证结果
* @example
*
* validatePassword('a12345678');
* // =>
* {
* validated: true, // 验证结果,根据密码强度、是否包含非法字符得出
* level: 2, // 强度级别
* containes: {
* number: true, // 包含数字
* lowerCaseLetter: true, // 包含小写字母
* upperCaseLetter: false, // 包含大写字母
* specialCharacter: false, // 包含特殊字符
* unallowableCharacter: false // 包含非法字符
* }
* }
*
* validatePassword('a12345678', { level: 3 });
* // =>
* {
* validated: false,
* level: 2,
* containes: {
* number: true,
* lowerCaseLetter: true,
* upperCaseLetter: false,
* specialCharacter: false,
* unallowableCharacter: false
* }
* }
*
* validatePassword('_Aa一二三45678', { level: 3, ignoreCase: true });
* // =>
* {
* validated: false,
* level: 3,
* containes: {
* number: true,
* lowerCaseLetter: true,
* upperCaseLetter: true,
* specialCharacter: true,
* unallowableCharacter: true
* }
* }
*
* // 自定义特殊字符
* validatePassword('_Aa一二三45678', { level: 3, ignoreCase: true, special: '_一二三' });
* // =>
* {
* validated: true,
* level: 3,
* containes: {
* number: true,
* lowerCaseLetter: true,
* upperCaseLetter: true,
* specialCharacter: true,
* unallowableCharacter: false
* }
* }
*/
declare function validatePassword(value: string, options?: Options): {
validated: boolean;
level: number;
containes: {
number: boolean;
lowerCaseLetter: boolean;
upperCaseLetter: boolean;
specialCharacter: boolean;
unallowableCharacter: boolean;
};
};
export default validatePassword;