Merge pull request #4 from alipay/master feat: 添加科普文地址链接
Merge pull request #4 from alipay/master
feat: 添加科普文地址链接
科普:关于 Emoji 你不知道的事
提供了从一段字符串中识别emoji的函数,还提供了一个匹配emoji的正则表达式。它符合Unicode标准,是基于Unicode 15.0 Unicode® Technical Standard #51规则封装的。 它的大小只有3k。
用于对字符串进行字素簇的拆分,类似于js中的API Intl.Segmenter,但是它具有更好的兼容性。它符合Unicode标准,是基于Unicode unicode tr29:UNICODE TEXT SEGMENTATION开发的一种针对”用户感知字符”(字素簇)进行分割的方法。 它是一个纯静态的、无任何额外依赖的方法,体积很小,且不会有兼容性问题。
Via npm:
npm i ant-character-js
识别Emoji
import { hasEmoji, matchEmoji, getRegExpEmoji } from 'ant-character-js/lib/emoji.js' // 判断一段字符串中是否有emoji hasEmoji('123123123'); // false hasEmoji('12312🇭🇰3123'); // true // 匹配一段字符串中的emoji matchEmoji('123123123'); // null matchEmoji('12312🇭🇰3123'); // ['🇭🇰'] matchEmoji('12312🇭🇰31🇭🇰23', 'g'); // ['🇭🇰', '🇭🇰'] // 识别emoji的正则 const reg1 = getRegExpEmoji(); // 正则:/\p{emoji}/ reg1.test('😊'); // true const reg2 = getRegExpEmoji('g'); // 正则:/\p{emoji}/g '😊😊😊'.match(reg2); // ['😊', '😊', '😊']
子素簇边界拆分
import { graphemeSplit } from 'ant-character-js/lib/grapheme.js' graphemeSplit('🧑🏼🦰❤️🩹🏄🏻♀️👨🏽🎤👩🏽🤝👨🏿🤙'); // returns ["🧑🏼🦰", "❤️🩹", "🏄🏻♀️", "👨🏽🎤", "👩🏽🤝👨🏿", "🤙"] graphemeSplit('Ĺo͂řȩm̅'); // returns ["Ĺ","o͂","ř","ȩ","m̅"] graphemeSplit('Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍A̴̵̜̰͔ͫ͗͢L̠ͨͧͩ͘G̴̻͈͍͔̹̑͗̎̅͛́Ǫ̵̹̻̝̳͂̌̌͘!͖̬̰̙̗̿̋ͥͥ̂ͣ̐́́͜͞'); // returns ["Z͑ͫ̓ͪ̂ͫ̽͏̴̙̤̞͉͚̯̞̠͍","A̴̵̜̰͔ͫ͗͢","L̠ͨͧͩ͘","G̴̻͈͍͔̹̑͗̎̅͛́","Ǫ̵̹̻̝̳͂̌̌͘","!͖̬̰̙̗̿̋ͥͥ̂ͣ̐́́͜͞"] // graphemeSubstr 提供针对一段字符串按照视觉长度 或者 逻辑长度进行截取的能力。 // 例子1:按照视觉长度截取一段emoji字符 graphemeSubstr('🧑🏼🦰❤️🩹🏄🏻♀️👨🏽🎤', 1, 4); // '❤️🩹🏄🏻♀️👨🏽🎤' // 其中“1”表示 以视觉长度划分:从左开始第1个“视觉字符”(0是起始位置) // 其中“4”表示 以视觉长度划分:从左开始第4个“视觉字符” // graphemeSubstr('🧑🏼🦰❤️🩹🏄🏻♀️👨🏽🎤', 1, 4)表示取第1-4个“视觉字符”的字符串'❤️🩹🏄🏻♀️👨🏽🎤' // 例子2:按照视觉长度截取一段emoji字符,但是限制取出的字符的最大逻辑长度为13 graphemeSubstr('🧑🏼🦰❤️🩹🏄🏻♀️👨🏽🎤', 1, 4, 13) === '❤️🩹🏄🏻♀️' // 其中“13”表示,取第1-4个“视觉字符”的字符串 同时限制取出的字符串的最大逻辑长度为13 // 例子1中 取出的'❤️🩹🏄🏻♀️👨🏽🎤'.length === 19, 19超过了13,所以会减掉最后一个字符👨🏽🎤 // '👨🏽🎤'.length === 7, 所以最后取出的字符为'❤️🩹🏄🏻♀️' // 如果'👨🏽🎤'.length === 5, 19 - 5 依旧大于13, 就会再减掉一个字符,以此类推。
MIT
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
字符处理js库
科普:关于 Emoji 你不知道的事
Emoji识别
提供了从一段字符串中识别emoji的函数,还提供了一个匹配emoji的正则表达式。它符合Unicode标准,是基于Unicode 15.0 Unicode® Technical Standard #51规则封装的。 它的大小只有3k。
子素簇边界拆分
用于对字符串进行字素簇的拆分,类似于js中的API Intl.Segmenter,但是它具有更好的兼容性。它符合Unicode标准,是基于Unicode unicode tr29:UNICODE TEXT SEGMENTATION开发的一种针对”用户感知字符”(字素簇)进行分割的方法。 它是一个纯静态的、无任何额外依赖的方法,体积很小,且不会有兼容性问题。
Installation
Via npm:
识别Emoji
子素簇边界拆分
Emoji API
getRegExpEmoji
hasEmoji
matchEmoji
Grapheme API
graphemeSplit
graphemeSubstr
License
MIT