Gathering detailed insights and metrics for ant-character-js
Gathering detailed insights and metrics for ant-character-js
Gathering detailed insights and metrics for ant-character-js
Gathering detailed insights and metrics for ant-character-js
npm install ant-character-js
Module System
Min. Node Version
Typescript Support
Node Version
NPM Version
19 Stars
9 Commits
2 Forks
2 Watching
3 Branches
30 Contributors
Updated on 09 Aug 2024
TypeScript (96.91%)
JavaScript (3.09%)
Cumulative downloads
Total Downloads
Last day
-33.3%
2
Compared to previous day
Last week
-46.2%
7
Compared to previous week
Last month
154.5%
28
Compared to previous month
Last year
-82.3%
396
Compared to previous year
24
提供了从一段字符串中识别emoji的函数,还提供了一个匹配emoji的正则表达式。它符合Unicode标准,是基于Unicode 15.0 Unicode® Technical Standard #51规则封装的。 它的大小只有3k。
用于对字符串进行字素簇的拆分,类似于js中的API Intl.Segmenter,但是它具有更好的兼容性。它符合Unicode标准,是基于Unicode unicode tr29:UNICODE TEXT SEGMENTATION开发的一种针对"用户感知字符"(字素簇)进行分割的方法。 它是一个纯静态的、无任何额外依赖的方法,体积很小,且不会有兼容性问题。
Via npm:
1npm i ant-character-js
识别Emoji
1import { hasEmoji, matchEmoji, getRegExpEmoji } from 'ant-character-js/lib/emoji.js' 2 3// 判断一段字符串中是否有emoji 4hasEmoji('123123123'); // false 5hasEmoji('12312🇭🇰3123'); // true 6 7// 匹配一段字符串中的emoji 8matchEmoji('123123123'); // null 9matchEmoji('12312🇭🇰3123'); // ['🇭🇰'] 10matchEmoji('12312🇭🇰31🇭🇰23', 'g'); // ['🇭🇰', '🇭🇰'] 11 12// 识别emoji的正则 13const reg1 = getRegExpEmoji(); // 正则:/\p{emoji}/ 14reg1.test('😊'); // true 15const reg2 = getRegExpEmoji('g'); // 正则:/\p{emoji}/g 16'😊😊😊'.match(reg2); // ['😊', '😊', '😊']
子素簇边界拆分
1import { graphemeSplit } from 'ant-character-js/lib/grapheme.js' 2 3graphemeSplit('🧑🏼🦰❤️🩹🏄🏻♀️👨🏽🎤👩🏽🤝👨🏿🤙'); // returns ["🧑🏼🦰", "❤️🩹", "🏄🏻♀️", "👨🏽🎤", "👩🏽🤝👨🏿", "🤙"] 4 5graphemeSplit('Ĺo͂řȩm̅'); // returns ["Ĺ","o͂","ř","ȩ","m̅"] 6 7graphemeSplit('Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍A̴̵̜̰͔ͫ͗͢L̠ͨͧͩ͘G̴̻͈͍͔̹̑͗̎̅͛́Ǫ̵̹̻̝̳͂̌̌͘!͖̬̰̙̗̿̋ͥͥ̂ͣ̐́́͜͞'); // returns ["Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍","A̴̵̜̰͔ͫ͗͢","L̠ͨͧͩ͘","G̴̻͈͍͔̹̑͗̎̅͛́","Ǫ̵̹̻̝̳͂̌̌͘","!͖̬̰̙̗̿̋ͥͥ̂ͣ̐́́͜͞"] 8 9// graphemeSubstr 提供针对一段字符串按照视觉长度 或者 逻辑长度进行截取的能力。 10// 例子1:按照视觉长度截取一段emoji字符 11graphemeSubstr('🧑🏼🦰❤️🩹🏄🏻♀️👨🏽🎤', 1, 4); // '❤️🩹🏄🏻♀️👨🏽🎤' 12// 其中“1”表示 以视觉长度划分:从左开始第1个“视觉字符”(0是起始位置) 13// 其中“4”表示 以视觉长度划分:从左开始第4个“视觉字符” 14 15// graphemeSubstr('🧑🏼🦰❤️🩹🏄🏻♀️👨🏽🎤', 1, 4)表示取第1-4个“视觉字符”的字符串'❤️🩹🏄🏻♀️👨🏽🎤' 16// 例子2:按照视觉长度截取一段emoji字符,但是限制取出的字符的最大逻辑长度为13 17 18graphemeSubstr('🧑🏼🦰❤️🩹🏄🏻♀️👨🏽🎤', 1, 4, 13) === '❤️🩹🏄🏻♀️' 19 20// 其中“13”表示,取第1-4个“视觉字符”的字符串 同时限制取出的字符串的最大逻辑长度为13 21// 例子1中 取出的'❤️🩹🏄🏻♀️👨🏽🎤'.length === 19, 19超过了13,所以会减掉最后一个字符👨🏽🎤 22 23// '👨🏽🎤'.length === 7, 所以最后取出的字符为'❤️🩹🏄🏻♀️' 24// 如果'👨🏽🎤'.length === 5, 19 - 5 依旧大于13, 就会再减掉一个字符,以此类推。 25 26
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
modifier | 正则修饰符,比如: 'g' | string | - |
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
str | 需要检查的字符串 | string | - |
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
str | 需要匹配的字符串 | string | - |
modifier | new RegExp的修饰符,传g的话就会匹配所有的emoji出来,不传的话只会匹配一个 | string | - |
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
str | 需要拆分的字符串 | string | - |
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
str | 需要拆分的字符串 | string | - |
start | 开始位置(视觉长度),必须大于0,且小于end | number | - |
end | 结束位置(视觉长度),必须大于0,且大于start | number | - |
maxLength | 非必填,如填写了会限制输出的最大物理长度 | number | - |
No vulnerabilities found.
No security vulnerabilities found.