jl-utils
v1.0.2
Published
common toolkit
Readme
jl-utils
一个功能强大、简单易用的 JavaScript 验证工具库,提供丰富的验证方法和灵活的验证规则。
安装
bash
npm install jl-utils快速开始
基本使用
javascript
// 方式一:导入默认实例
const validator = require('jl-utils');
// 方式二:导入 Validator 类
const { Validator } = require('jl-utils');
// 使用静态方法
console.log(Validator.isEmail('[email protected]')); // true
console.log(Validator.isPhone('13800138000')); // trueES6 模块方式
javascript
import validator, { Validator } from 'jl-utils';
// 或者只导入需要的验证方法
import { isEmail, isPhone, validatePassword } from 'jl-utils';功能特性
- ✅ 邮箱验证 - 验证标准邮箱格式
- ✅ 手机号验证 - 支持中国手机号验证
- ✅ 身份证验证 - 支持中国 15 位和 18 位身份证验证
- ✅ URL 验证 - 验证 URL 格式有效性
- ✅ 数字验证 - 数字和整数验证
- ✅ 空值检查 - 多种数据类型的空值检查
- ✅ 长度验证 - 字符串长度范围验证
- ✅ 范围验证 - 数字范围验证
- ✅ 中文检测 - 检测字符串是否包含中文
- ✅ 字母数字验证 - 纯字母数字字符串验证
- ✅ 密码强度验证 - 可配置的密码强度验证
- ✅ 日期格式验证 - 多种日期格式验证
- ✅ 批量验证 - 支持多字段批量验证
- ✅ 自定义规则 - 支持添加自定义验证规则
API 文档
基础验证方法
isEmail(email)
验证邮箱格式
javascript
Validator.isEmail('[email protected]'); // true
Validator.isEmail('invalid-email'); // falseisPhone(phone)
验证中国手机号格式
javascript
Validator.isPhone('13800138000'); // true
Validator.isPhone('12345678901'); // falseisIdCard(idCard)
验证中国身份证号
javascript
Validator.isIdCard('110101199001011234'); // true
Validator.isIdCard('123456789012345'); // true (15位)isURL(url)
验证 URL 格式
javascript
Validator.isURL('https://example.com'); // true
Validator.isURL('not-a-url'); // falseisNumber(value)
验证是否为数字
javascript
Validator.isNumber(123); // true
Validator.isNumber('123'); // true
Validator.isNumber('abc'); // falseisInteger(value)
验证是否为整数
javascript
Validator.isInteger(123); // true
Validator.isInteger(123.45); // falseisEmpty(value)
验证是否为空值
javascript
Validator.isEmpty(''); // true
Validator.isEmpty([]); // true
Validator.isEmpty({}); // true
Validator.isEmpty(null); // true
Validator.isEmpty('text'); // false字符串验证
isLength(str, min, max)
验证字符串长度范围
javascript
Validator.isLength('hello', 3, 10); // true
Validator.isLength('hi', 3, 10); // falsecontainsChinese(str)
验证是否包含中文
javascript
Validator.containsChinese('hello 世界'); // true
Validator.containsChinese('hello world'); // falseisAlphanumeric(str)
验证是否只包含字母和数字
javascript
Validator.isAlphanumeric('abc123'); // true
Validator.isAlphanumeric('abc 123'); // false数字验证
isInRange(num, min, max)
验证数字是否在指定范围内
javascript
Validator.isInRange(5, 1, 10); // true
Validator.isInRange(15, 1, 10); // false密码验证
validatePassword(password, options)
验证密码强度
javascript
const result = Validator.validatePassword('StrongPass123!', {
minLength: 8,
requireUppercase: true,
requireLowercase: true,
requireNumbers: true,
requireSpecialChars: true
});
console.log(result);
// {
// isValid: true,
// strength: 'strong',
// score: 5,
// errors: []
// }选项参数:
minLength: 最小长度 (默认: 8)requireUppercase: 需要大写字母 (默认: true)requireLowercase: 需要小写字母 (默认: true)requireNumbers: 需要数字 (默认: true)requireSpecialChars: 需要特殊字符 (默认: true)
日期验证
isDate(date, format)
验证日期格式
javascript
Validator.isDate('2023-12-25'); // true (默认格式 YYYY-MM-DD)
Validator.isDate('25/12/2023', 'DD/MM/YYYY'); // true
Validator.isDate('12-25-2023', 'MM-DD-YYYY'); // true高级功能
批量验证
javascript
const data = {
email: '[email protected]',
phone: '13800138000',
age: 25,
password: 'Test123!'
};
const rules = {
email: [
{ validator: 'isEmail', message: '邮箱格式不正确' }
],
phone: [
{ validator: 'isPhone', message: '手机号格式不正确' }
],
age: [
{
validator: (value) => Validator.isInRange(value, 18, 60),
message: '年龄必须在18-60之间'
}
],
password: [
{
validator: (value) => Validator.validatePassword(value).isValid,
message: '密码强度不足'
}
]
};
const result = Validator.validate(data, rules);
console.log(result);
// {
// isValid: true,
// errors: {}
// }自定义验证规则
javascript
// 添加自定义验证规则
Validator.addRule('isUsername', (username) => {
return /^[a-zA-Z0-9_]{3,20}$/.test(username);
});
// 使用自定义规则
Validator.isUsername('john_doe123'); // true
// 在批量验证中使用
const rules = {
username: [
{ validator: 'isUsername', message: '用户名格式不正确' }
]
};错误处理
所有验证方法在遇到无效输入时会返回 false,不会抛出异常,确保代码的稳定性。
javascript
// 安全的验证调用
const isValid = Validator.isEmail(someUserInput);
if (!isValid) {
// 处理无效输入
console.log('邮箱格式不正确');
}贡献
欢迎提交 Issue 和 Pull Request 来改进这个项目。
许可证
MIT License
更新日志
v1.0.0
- 初始版本发布
- 包含所有基础验证功能
- 支持批量验证和自定义规则
