折叠: JavaScript 执行 Unicode 大小写折叠算法
这是一个小节点模块,用于执行 Unicode 大小写
算法,在简单和完整的变体中,通过生成转换
从表格 正式大小写折叠表 unicode.org。 。 。 .
const foldcase = require('@ar-nelson/foldcase');
foldcase('ABC123'); // => 'abc123'
foldcase 类似 String.prototype.toLowerCase但不一样 内容
意图用途是大小写不敏感字符串比较.
大小写折叠 各 Unicode 版本保持不变,尽管
toLowerCase'行为可能改变. 例如,因为切罗基脚本
最初Unicode中只有大写字符,小写字符
后来又增加了, foldcase 切罗基文本转换为 大写。 。 。 .
foldcase('ꮳꮃꭹ'); // => 'ᏣᎳᎩ'
这个模块没有依赖性,应该在节点和现代浏览器上运行.
因为它使用一些ES6特性(\u{…} 逃脱, Array.from它不会运行
在任何版本的IE上,没有转录和多填充.
使用 npm test 来测试一下 使用 npm run codegen 重新生成
case-tables.js 从表格 unicode.org (可能只工作于Linux).
洞穴空道: 因为它是在纯JS中执行的,它运作在
32位代码点而不是16位字符,这个算法是 缓慢。仅限
用这个 toLowerCase 如果你知道为了兼容性需要它.
API 密码
foldcase(String)
别名 foldcase.full。 。 。 .
foldcase.full(String)
应用完整的 Unicode 大小写折叠算法。 此算法可能转换一些 单字符为多字符.
foldcase.full('Weiß'); // => 'weiss'
foldcase.simple(String)
应用简单的 Unicode 大小写折叠算法。 简单的算法不会 更改其输入字符串的长度(以代码为单位).
foldcase.simple('Weiß'); // => 'weiß'
foldcase.charFull(String)
将完整的 Unicode 大小写折叠算法应用到单个代码点. 代码 分点可能是一对取而代之的对子,因此争论可能是一串长度为一或二. 如果参数不是一个代码点, 或者没有大小写折叠 转换后,参数不变.
foldcase.charFull('A'); // => 'a'
foldcase.charFull('FOO'); // => 'FOO'
此版本的大小写折叠可能将单个字符转换为多个 字符键.
foldcase.charFull('ß'); // => 'ss'
foldcase.charSimple(String)
将简单的 Unicode 大小写折叠算法应用到单个代码点. 这个 代码点可能是一对代词,所以参数可能是一串长度 1或2号. 如果参数不是一个代码点, 或者没有案例 折叠转换, 参数将保持不变地返回 .
foldcase.charSimple('A'); // => 'a'
foldcase.charSimple('FOO'); // => 'FOO'
此版本的大小写折叠在给定时总是返回一个代码点 一个代码点.
foldcase.charSimple('ß'); // => 'ß'