V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Wanten
V2EX  ›  程序员

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

  •  
  •   Wanten · 21 天前 · 1108 次点击

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

    网页、包

    截图

    main page

    源码

    起因

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

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

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

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

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

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

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

    8 条回复    2024-04-09 12:51:39 +08:00
    lonelykid
        1
    lonelykid  
       21 天前
    有人名库和地名库的,直接在里面选就是了。随机的一般都没有什么涵义,一看就硬凑的,不符合场景,而且读着不顺口。
    musi
        2
    musi  
       21 天前
    大模型:这我熟啊
    vituralfuture
        3
    vituralfuture  
       21 天前 via Android   ❤️ 2
    大致看了一下源码,似乎是枚举了各种中文字符,没必要,查查中文字符的 Unicode 码点范围,每次生成随机中文字符时,生成一个在码点范围内的随机数转成 unicode 字符即可
    Wanten
        4
    Wanten  
    OP
       21 天前
    @vituralfuture 还是你这个方法简洁高效,赞
    lijingtong2019
        5
    lijingtong2019  
       21 天前   ❤️ 1
    emm ,其实一行代码就可以了:String.fromCharCode(Math.floor(Math.random() * (0x9FA5 - 0x4E00 + 1) ) + 0x4E00)
    Wanten
        6
    Wanten  
    OP
       21 天前
    @lijingtong2019 厉害!从未想过还能这样。
    duzhuo
        7
    duzhuo  
       21 天前 via Android
    我记得 vscode 有一个中文 lorem 的插件
    Wanten
        8
    Wanten  
    OP
       21 天前   ❤️ 1
    @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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4005 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:09 · PVG 18:09 · LAX 03:09 · JFK 06:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.