UNPKG

util-helpers

Version:

一个基于业务场景的工具方法库

103 lines (102 loc) 3.32 kB
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;