NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
# SinmaJS 文档中心 欢迎使用 SinmaJS!这里是 SinmaJS 的完整 API 文档,包含了所有模块的详细说明、使用方法和实际示例。 ## 📚 文档导航 [TOC] ### 核心模块 #### 🔍 [数据验证模块](./validator.md) 专为中文开发者优化的数据验证工具,支持手机号、身份证、邮箱等多种格式验证。 **主要功能:** - `isPhone(value, strict)` - 手机号验证(支持严格模式) - `isEmail(value)` - 邮箱格式验证 - `isIdCard(value, strict)` - 身份证号验证(支持校验位验证) - `isEmpty(value)` - 空值检测 - `isNumber(value)` - 数字类型验证 - `isChinese(value)` - 中文字符验证 - `isUrl(value)` - URL格式验证 ```javascript // 快速示例 sinma.isPhone('13812345678'); // true sinma.isEmail('user@example.com'); // true sinma.isIdCard('440301199001011234'); // true ``` --- #### 📝 [字符串处理模块](./string.md) 提供丰富的字符串操作功能,包括截断、格式化、大小写转换等。 **主要功能:** - `truncate(str, length, suffix)` - 字符串截断 - `capitalize(str)` - 首字母大写 - `camelCase(str)` - 驼峰命名转换 - `randomString(length, includeSymbols)` - 随机字符串生成 - `stripHtml(str)` - 去除HTML标签 ```javascript // 快速示例 sinma.truncate('很长的文本内容', 5); // '很长的文本...' sinma.capitalize('hello world'); // 'Hello world' sinma.camelCase('user_name'); // 'userName' sinma.randomString(8); // 'aBc123Xy' ``` --- #### 💰 [数字处理模块](./number.md) 解决JavaScript浮点数精度问题,提供精确运算和货币格式化功能。 **主要功能:** - `formatCurrency(amount, currency)` - 货币格式化 - `add(a, b)` - 精确加法运算 - `subtract(a, b)` - 精确减法运算 - `multiply(a, b)` - 精确乘法运算 - `divide(a, b)` - 精确除法运算 - `randomInt(min, max)` - 随机整数生成 ```javascript // 快速示例 sinma.formatCurrency(1234.56); // '¥1,234.56' sinma.add(0.1, 0.2); // 0.3 (精确结果) sinma.multiply(0.2, 3); // 0.6 (避免精度问题) ``` --- #### 📅 [日期处理模块](./date.md) 全面的日期时间处理工具,支持格式化、年龄计算、闰年判断等。 **主要功能:** - `formatDate(date, format)` - 日期格式化 - `getTimestamp(date)` - 获取时间戳 - `calculateAge(birthday)` - 计算年龄 - `isLeapYear(year)` - 闰年判断 - `now(format)` - 获取当前时间 ```javascript // 快速示例 sinma.formatDate(new Date(), 'YYYY-MM-DD HH:mm:ss'); // '2023-12-25 14:30:45' sinma.calculateAge('1990-01-01'); // 33 sinma.isLeapYear(2024); // true ``` --- #### 🔢 [数组处理模块](./array.md) 提供数组操作的实用工具函数。 **主要功能:** - `unique(arr)` - 数组去重 - `chunk(arr, size)` - 数组分块 - `flatten(arr, depth)` - 数组扁平化 - `shuffle(arr)` - 数组洗牌 ```javascript // 快速示例 sinma.unique([1, 2, 2, 3]); // [1, 2, 3] sinma.chunk([1, 2, 3, 4, 5], 2); // [[1, 2], [3, 4], [5]] sinma.shuffle([1, 2, 3, 4, 5]); // [3, 1, 5, 2, 4] ``` --- #### 🏷️ [对象处理模块](./object.md) 对象操作工具,支持深度克隆、合并、属性获取等。 **主要功能:** - `clone(obj)` - 深度克隆 - `merge(target, ...sources)` - 对象合并 - `get(obj, path, defaultValue)` - 安全属性获取 ```javascript // 快速示例 const obj = { a: 1, b: { c: 2 } }; sinma.clone(obj); // 深度克隆对象 sinma.get(obj, 'b.c', 0); // 2 ``` --- #### 🇨🇳 [中文处理模块](./chinese.md) 专为中文环境设计的处理工具。 **主要功能:** - `maskPhone(phone)` - 手机号脱敏 - `maskIdCard(idCard)` - 身份证脱敏 - `maskName(name)` - 姓名脱敏 - `toPinyin(chinese)` - 中文转拼音 - `getProvinceByIdCard(idCard)` - 从身份证获取省份 - `getBirthDateByIdCard(idCard)` - 从身份证获取生日 - `getGenderByIdCard(idCard)` - 从身份证获取性别 ```javascript // 快速示例 sinma.maskPhone('13812345678'); // '138****5678' sinma.getProvinceByIdCard('440301199001011234'); // '广东' sinma.toPinyin('中国'); // 'zhongguo' ``` --- #### 🔗 [URL处理模块](./url.md) URL参数处理和构建工具。 **主要功能:** - `getQueryParam(name, url)` - 获取URL参数 - `buildUrl(base, params)` - 构建URL ```javascript // 快速示例 sinma.getQueryParam('name', '?name=张三'); // '张三' sinma.buildUrl('/api/users', {page: 1}); // '/api/users?page=1' ``` --- #### 🎨 [DOM操作模块](./dom.md) 浏览器DOM操作辅助工具。 **主要功能:** - `setOpacity(element, opacity)` - 设置透明度 - `imageToBase64(img)` - 图片转Base64 --- #### 🛠️ [工具函数模块](./utils.md) 通用工具函数集合。 **主要功能:** - `debounce(func, delay)` - 防抖函数 - `throttle(func, delay)` - 节流函数 - `sleep(ms)` - 延迟执行 - `getType(value)` - 获取数据类型 ```javascript // 快速示例 const debouncedFn = sinma.debounce(searchFn, 300); await sinma.sleep(1000); // 等待1秒 sinma.getType([]); // 'array' ``` --- #### ⛓️ [链式调用模块](./chain.md) 提供链式调用语法糖。 **主要功能:** - `chain(value)` - 创建链式调用包装器 ```javascript // 快速示例 const result = sinma.chain('hello world') .capitalize() .truncate(5) .unwrap(); // 'Hello...' ``` ## 🚀 快速开始 ### 安装 ```bash npm install sinma.js ``` ### 引用方式 #### ES6 模块 ```javascript import sinma from 'sinma.js'; // 或解构引用 import { isPhone, formatCurrency, formatDate } from 'sinma.js'; ``` #### CommonJS ```javascript const sinma = require('sinma.js'); ``` #### 浏览器CDN ```html <script src="https://unpkg.com/sinma.js@latest/dist/sinma.min.js"></script> ``` ### 基础用法 ```javascript // 数据验证 if (sinma.isPhone('13812345678') && sinma.isEmail('user@test.com')) { console.log('数据验证通过'); } // 字符串处理 const title = sinma.truncate(sinma.capitalize('hello world'), 8); console.log(title); // 'Hello wo...' // 数字计算 const total = sinma.add(sinma.multiply(99.9, 2), 0.2); console.log(sinma.formatCurrency(total)); // '¥200.00' // 日期处理 const userAge = sinma.calculateAge('1990-01-01'); const now = sinma.now('YYYY-MM-DD HH:mm'); console.log(`用户年龄:${userAge},当前时间:${now}`); // 数组处理 const uniqueItems = sinma.unique([1, 2, 2, 3, 3]); const chunks = sinma.chunk(uniqueItems, 2); console.log(chunks); // [[1, 2], [3]] // 中文处理 const maskedPhone = sinma.maskPhone('13812345678'); const province = sinma.getProvinceByIdCard('440301199001011234'); console.log(`脱敏手机号:${maskedPhone},省份:${province}`); ``` ## 🎯 特色功能 ### 专为中文优化 - 支持中文姓名、手机号、身份证等本土化验证 - 提供数据脱敏、拼音转换等中文特色功能 - 从身份证号提取省份、生日、性别等信息 ### 精确数值运算 - 解决JavaScript浮点数精度问题 - 提供精确的加减乘除运算 - 支持货币格式化和千分位显示 ### 向后兼容 - 保留所有旧版本API别名 - 平滑升级,无需修改现有代码 - 支持多种模块化格式 ### 链式调用 ```javascript sinma.chain([1, 2, 2, 3, 1]) .unique() .shuffle() .unwrap(); ``` ## 📋 版本兼容性 ### 浏览器支持 - Chrome >= 55 - Firefox >= 53 - Safari >= 10 - Edge >= 15 - IE >= 9 (需要polyfill) ### Node.js支持 - Node.js >= 10.0.0 ## 🤝 贡献指南 我们欢迎社区贡献!如果您发现bug或有新功能建议,请: 1. 在GitHub提交Issue 2. Fork项目并创建功能分支 3. 提交Pull Request ## 📞 技术支持 - **官网**: [www.sinma.net](http://www.sinma.net/) - **文档**: [看云文档](https://www.kancloud.cn/sinma/sinmajs/3151960) - **作者**: Sinma <sinma@qq.com> - **QQ**: 42033223 ## 📄 许可证 本项目采用 ISC 许可证。详见 [LICENSE](../LICENSE) 文件。 --- ## 📖 更多资源 - [完整API参考](./api-reference.md) - [最佳实践指南](./best-practices.md) - [常见问题解答](./faq.md) - [版本更新日志](../CHANGELOG.md) **💡 提示**: 点击上方模块链接查看详细的API说明、参数说明、返回值说明和完整的使用示例。 *****