今天来分享 6 个只有中国人才懂的前端工具库,这些工具在特定场景下非常有用!
省市区选择
只需借助 UI 组件库的 Cascader 级联选择以及行政区划数据即可实现地址选择组件。
Administrative-divisions-of-China 项目就提供了国内行政区划(五级:省级、地级、县级、乡级和村级)数据,数据均来自官方。
Github:https://github.com/modood/Administrative-divisions-of-China
汉字拼音转换
pinyin-pro 是一个专业的 JavaScript 汉字拼音转换库,功能丰富、准确率高、性能优异。其主要功能如下:
支持拼音/声母/韵母/首字母/音调/全部信息
支持人名姓氏模式
支持文本和拼音匹配
支持自定义拼音
支持获取带拼音汉字的 HTML 字符串
支持获取汉字的拼音
支持拼音输入转换
极致的性能和极高的拼音识别准确率
import { pinyin } from "pinyin-pro";
// 获取字符串格式拼音
pinyin("汉语拼音"); // 'hàn yǔ pīn yīn'
// 获取数组格式拼音
pinyin("汉语拼音", { type: "array" }); // ["hàn", "yǔ", "pīn", "yīn"]
// 获取不带音调格式拼音
pinyin("汉语拼音", { toneType: "none" }); // "han yu pin yin"
// 获取不带音调数组格式拼音
pinyin("汉语拼音", { toneType: "none", type: "array" }); // ["han", "yu", "pin", "yin"]
// 音调以数字形式显示
pinyin("汉语拼音", { toneType: "num" }); // "han4 yu3 pin1 yin1"
// 自动识别多音字
pinyin("睡着了"); // "shuì zháo le"
Github:https://github.com/zh-lx/pinyin-pro
全能日历
lunar 是一个支持阳历、阴历、佛历和道历的日历工具库,其不依赖第三方,支持阳历、阴历、佛历、道历、儒略日的相互转换,还支持星座、干支、生肖、节气、节日、彭祖百忌、每日宜忌、吉神宜趋、凶煞宜忌、吉神方位、冲煞、纳音、星宿、八字、五行、十神、建除十二值星、青龙名堂等十二神、黄道日及吉凶等。
Github:https://github.com/6tail/lunar-javascript
中文数字和阿拉伯数字互转
nzh 是一个用于阿拉伯数字与中文数字相互转换的工具库,支持科学记数法、口语化表达及自定义单位。
const Nzh = require("nzh");
const nzhcn = Nzh.cn; // 使用简体中文, 另外有 Nzh.hk -- 繁体中文
nzhcn.encodeS(100111); // 转中文小写 >> 十万零一百一十一
nzhcn.encodeB(100111); // 转中文大写 >> 壹拾万零壹佰壹拾壹
nzhcn.encodeS("1.23456789e+21"); // 科学记数法字符串 >> 十二万三千四百五十六万万七千八百九十万亿
nzhcn.toMoney("100111.11"); // 转中文金额 >> 人民币壹拾万零壹佰壹拾壹元壹角壹分
Github:https://github.com/cnwhy/nzh
紫微斗数排盘
Iztro 是一个支持多语言、轻量级获取紫微斗数排盘信息的JavaScript开源库。Iztro通过输入出生日期、时间、性别等信息,能够输出对应的紫微斗数星盘信息。
紫微斗数星盘是古代中国的一种命理学体系,通过排列星曜与宫位来预测和分析个人命运及性格特征。
Github:https://github.com/SylarLong/iztro
中文分词
NodeJieba 是"结巴"中文分词的 Node.js 版本实现, 由CppJieba提供底层分词算法实现, 是兼具高性能和易用性两者的 Node.js 中文分词组件。分词可以用于关键词搜索等应用场景。
const nodejieba = require("nodejieba");
const topN = 4;
console.log(nodejieba.extract("升职加薪,当上CEO,走上人生巅峰。", topN));
//[ { word: 'CEO', weight: 11.739204307083542 },
// { word: '升职', weight: 10.8561552143 },
// { word: '加薪', weight: 10.642581114 },
// { word: '巅峰', weight: 9.49395840471 } ]
console.log(nodejieba.textRankExtract("升职加薪,当上CEO,走上人生巅峰。", topN));
//[ { word: '当上', weight: 1 },
// { word: '不用', weight: 0.9898479330698993 },
// { word: '多久', weight: 0.9851260595435759 },
// { word: '加薪', weight: 0.9830464899847804 },
// { word: '升职', weight: 0.9802777682279076 } ]
Github:https://github.com/yanyiwu/nodejieba