# @qubit-ltd/common-normalizer
[](https://npmjs.com/package/@qubit-ltd/common-normalizer)
[](https://www.apache.org/licenses/LICENSE-2.0)
[](README.md)
[](https://dl.circleci.com/status-badge/redirect/gh/qubit-ltd/js-common-normalizer/tree/master)
[](https://coveralls.io/github/qubit-ltd/js-common-normalizer?branch=master)
[@qubit-ltd/common-normalizer] 是一个JavaScript ES6库,提供了一系列用于规范化Web应用程序中常见字段的工具函数。它可以帮助标准化各种数据类型(如布尔值、日期、数字等)的格式,使数据处理更加一致和可靠。
## 安装
使用npm安装:
```bash
npm install @qubit-ltd/common-normalizer
```
或者使用yarn安装:
```bash
yarn add @qubit-ltd/common-normalizer
```
## 使用方法
此库提供了多种用于规范化不同类型数据的函数:
```javascript
import {
normalizeBool, // 规范化布尔值
normalizeInteger, // 规范化整数
normalizeDate, // 规范化日期
normalizeDateTime, // 规范化日期时间
normalizeTime, // 规范化时间
normalizeTimestamp, // 规范化时间戳
Normalizer, // 包含所有函数的规范化器对象
} from '@qubit-ltd/common-normalizer';
// 规范化布尔值
const boolResult = normalizeBool('true'); // 返回 true
const boolResult2 = normalizeBool('false'); // 返回 false
// 无效输入将抛出错误
// normalizeBool('是') 将抛出 RangeError
// 规范化整数
const intResult = normalizeInteger('123'); // 返回 123
const intResult2 = normalizeInteger(''); // 返回 null
// 规范化日期
const dateResult = normalizeDate('2023-5-15'); // 返回 '2023-05-15'
const dateResult2 = normalizeDate('2023/5/15'); // 返回 '2023-05-15'
// 规范化日期时间
const dateTimeResult = normalizeDateTime('2023-5-15 14:30:25'); // 返回 '2023-05-15 14:30:25'
// 规范化时间
const timeResult = normalizeTime('14:30:25'); // 返回 '14:30:25'
// 规范化时间戳
const timestampResult = normalizeTimestamp('2023-5-15 14:30:25'); // 返回 Unix 时间戳
```
### 使用 Normalizer 对象
该库还提供了一个方便的 `Normalizer` 对象,包含所有规范化函数:
```javascript
import { Normalizer } from '@qubit-ltd/common-normalizer';
// 规范化各种数据类型
const boolValue = Normalizer.bool('true'); // 返回 true
const intValue = Normalizer.int('123'); // 返回 123
const dateValue = Normalizer.date('2023-5-15'); // 返回 '2023-05-15'
const datetimeValue = Normalizer.datetime('2023-5-15 14:30:25'); // 返回 '2023-05-15 14:30:25'
const timeValue = Normalizer.time('14:30:25'); // 返回 '14:30:25'
const trimmedValue = Normalizer.trim(' 你好 '); // 返回 '你好'
// Normalizer 还包括其他工具函数
const trimUpperValue = Normalizer.trimUppercase(' test '); // 返回 'TEST'
const numberValue = Normalizer.number('123.45'); // 返回 123.45
const moneyValue = Normalizer.money('1234.56'); // 格式化为货币
```
更多详细的使用示例,请参考API文档。
## API文档
完整的API文档可以在[项目文档页面](https://haixing-hu.github.io/js-common-normalizer/)中找到。
### 可用的规范化器
该库提供以下规范化函数:
- **normalizeBool**: 将值规范化为布尔值(true/false)
- **normalizeInteger**: 将值规范化为整数
- **normalizeDate**: 将日期字符串规范化为格式 'YYYY-MM-DD'
- **normalizeDateTime**: 将日期时间字符串规范化为格式 'YYYY-MM-DD HH:mm:ss'
- **normalizeTime**: 将时间字符串规范化为格式 'HH:mm:ss'
- **normalizeTimestamp**: 将日期时间字符串规范化为Unix时间戳
`Normalizer` 对象还包括以下额外的工具函数:
- **number**: 将字符串转换为浮点数
- **money**: 格式化货币值
- **trim**: 去除字符串两端的空白
- **trimUppercase**: 去除空白并转换为大写
- **mobile**, **phone**, **personName**, **email** 和其他常见字段类型
## 贡献
如果您发现任何问题或有改进建议,请随时在[GitHub仓库]上提交issue或pull request。
## 许可证
[@qubit-ltd/common-normalizer]在Apache 2.0许可证下分发。
更多详情请参阅[LICENSE](LICENSE)文件。
[@qubit-ltd/common-normalizer]: https://npmjs.com/package/@qubit-ltd/common-normalizer
[GitHub仓库]: https://github.com/qubit-ltd/js-common-normalizer