一个生成随机汉字的 npm 包,以及一个依赖此包开发的网页小工具

38 天前
 Wanten

这个工具可能对你没什么帮助,但希望对你有帮助。

网页、包

截图

源码

起因

在给一些虚拟的角色、国家、城市以及各式各样的事物取名时,常常不知道该用哪些字。

有些字用过了,有些字一时间想不起来,导致取名的过程变得异常痛苦。

一想到要取名就心生畏惧,进而使我迟迟不敢行动。

这时我在想,要是有现成的文字列在面前,供我任意选择就好了。

常用的汉字也就几千个,做一个生成随机汉字的工具,实现起来并不难。

于是我开始着手开发网页工具,并顺带写了一个其他人也可以使用的 npm 包。

(事实上我想要的只是这个网页工具,包是顺手开发的。跟朋友调侃道:“为了一碟醋,包了一顿饺子。”

1228 次点击
所在节点    程序员
8 条回复
lonelykid
38 天前
有人名库和地名库的,直接在里面选就是了。随机的一般都没有什么涵义,一看就硬凑的,不符合场景,而且读着不顺口。
musi
38 天前
大模型:这我熟啊
vituralfuture
38 天前
大致看了一下源码,似乎是枚举了各种中文字符,没必要,查查中文字符的 Unicode 码点范围,每次生成随机中文字符时,生成一个在码点范围内的随机数转成 unicode 字符即可
Wanten
38 天前
@vituralfuture 还是你这个方法简洁高效,赞
lijingtong2019
38 天前
emm ,其实一行代码就可以了:String.fromCharCode(Math.floor(Math.random() * (0x9FA5 - 0x4E00 + 1) ) + 0x4E00)
Wanten
38 天前
@lijingtong2019 厉害!从未想过还能这样。
duzhuo
38 天前
我记得 vscode 有一个中文 lorem 的插件
Wanten
38 天前
@vituralfuture
@lijingtong2019

感谢两位的高效方法,对我有很大启发。

但我的包提供了两个参数,可以指定常用字表的级别,以及字的笔画数范围:

levelRange?: [number, number]: The range of levels to include in the generated characters.
strokeCountRange?: [number, number]: The range of stroke counts to include in the generated characters.

这种应用场景似乎没法单纯使用 Unicode 码点范围实现

字表级别描述: https://github.com/WantenMN/random-chinese-characters-generator#level-descriptions

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1030753

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX