概述
代码仓库
适用于 Node.js 的 JavaScript 兼容 Unicode 数据。包含:码点数组、符号数组,以及 Unicode v16.0.0 的类别、书写系统、书写系统扩展、区块和属性的正则表达式,以及双向镜像和大小写折叠数据
本模块中的数据文件由 node-unicode-data 项目生成
安装
npm install @unicode/unicode-16.0.0 --save-dev注意: @unicode/unicode-16.0.0 应作为构建脚本中的 devDependency 使用,而非运行时(即普通 dependency)。
正则表达式
Unicode 数据模块自带类别、书写系统、书写系统扩展、区块和属性的预编译正则表达式。如果你想组合多个类别、书写系统等,可以使用 Regenerate。例如,构建一个匹配 Unicode v6.3.0 中阿拉伯和希腊书写系统所有符号的正则:
const regenerate = require'regenerate';const set = regenerate .addrequire'@unicode/unicode-6.3.0/Script_Extensions/Arabic/code-points.js' // 或 `…/symbols`,均可 .addrequire'@unicode/unicode-6.3.0/Script_Extensions/Greek/code-points.js'; // 或 `…/symbols`,均可console.logset.toString;// 然后你可以用如下模板将结果写入文件,并加上需要的正则标志:// const regex = /<%= set.toString %>/gim;用法示例
// 获取某 Unicode 类别下的码点数组:const codePoints = require'@unicode/unicode-16.0.0/General_Category/Uppercase_Letter/code-points.js';// 获取某 Unicode 类别下的符号数组(字符串):const symbols = require'@unicode/unicode-16.0.0/General_Category/Uppercase_Letter/symbols.js';// 获取匹配某 Unicode 类别下任意符号的正则表达式:const regex = require'@unicode/unicode-16.0.0/General_Category/Uppercase_Letter/regex.js';// 获取某码点所属的标准类别:// (注意:U+0041 是拉丁大写字母 A)const category = require'@unicode/unicode-16.0.0/General_Category'.get0x41;// 获取具有某 bidi 类别的所有码点数组:const on = require'@unicode/unicode-16.0.0/Bidi_Class/Other_Neutral/code-points.js';// 获取码点到 bidi 类别的映射表:const bidiClassMap = require'@unicode/unicode-16.0.0/Bidi_Class';// 获取某码点的方向性:const directionality = require'@unicode/unicode-16.0.0/Bidi_Class'.get0x41;// `«` U+00AB 的镜像符号是什么?const mirrored = require'@unicode/unicode-16.0.0/Bidi_Mirroring_Glyph'.get0xAB;// 获取匹配所有开括号的正则表达式:const openingBrackets = require'@unicode/unicode-16.0.0/Bidi_Paired_Bracket_Type/Open/regex.js';// ……以此类推。除了类别外,还可获取 Unicode 属性、区块、书写系统及其扩展的数据(适用于较新 Unicode 标准)。以下是 v16.0.0 可用数据的完整列表:
// `Names`:require'@unicode/unicode-16.0.0/Names/index.js'; // 标准名称数组require'@unicode/unicode-16.0.0/Names/Abbreviation/index.js'; // 码点到别名的查找表require'@unicode/unicode-16.0.0/Names/Alternate/index.js'; // 码点到别名的查找表require'@unicode/unicode-16.0.0/Names/Control/index.js'; // 码点到别名的查找表require'@unicode/unicode-16.0.0/Names/Correction/index.js'; // 码点到别名的查找表require'@unicode/unicode-16.0.0/Names/Figment/index.js'; // 码点到别名的查找表// `General_Category`:require'@unicode/unicode-16.0.0/General_Category'.getcodePoint; // 查找表// ...(下略,内容与英文一致,详见原文)// 其余内容与英文文档一致,均为 require 路径示例,未翻译以保持准确性。