string - 如何在 Google Apps 脚本中以编程方式添加拼音变音符号?
问题描述
我想编写一个函数dia
,它将拼音变音符号添加到提供的字符中,例如
dia('a', 1) == 'ā'
dia('a', 2) == 'á'
dia('a', 3) == 'ǎ'
dia('a', 4) == 'à'
而且我不想对所有变体进行硬编码。这该怎么做?
解决方案
这个 JavaScript 片段在网络浏览器中适用于我;它实现了dia
您描述的功能:
function dia (char, toneNumber)
{
const combiningDiacritics =
[
"\u0304", // COMBINING MACRON
"\u0301", // COMBINING ACUTE ACCENT
"\u030C", // COMBINING CARON
"\u0300" // COMBINING GRAVE ACCENT
];
if (/^[AEIOUÜaeiouü]$/.test (char) && ((toneNumber > 0) && (toneNumber <= combiningDiacritics.length)))
{
char += combiningDiacritics[toneNumber - 1];
char = char.normalize ('NFC');
}
return char;
}
//
console.log (dia ('a', 1)); // -> 'ā'
console.log (dia ('a', 2)); // -> 'á'
console.log (dia ('a', 3)); // -> 'ǎ'
console.log (dia ('a', 4)); // -> 'à'
这个怎么运作:
检查字符和音调编号的有效性。
将适当的组合变音符号连接到字符。
将结果规范化为组合形式并将其返回。
推荐阅读
- flutter - 在 searchdelegate 颤振中重建一个小部件
- c# - 将现有控制器操作转换为通用方法
- tensorflow2.0 - Tensorflow:稀疏张量的批量归一化
- angular-reactive-forms - FormControl 和 FormControlName 在同一个输入 Angular11
- twitter-bootstrap - Bootstrap 折叠表动画不起作用
- sql - 删除 SQL 中的重复列
- playframework - 如何为 ok()、status() 等不同方法导入 play framework 的 Results 类
- flutter - Flutter 中的凹陷或深度效果
- python - KeyError: 'x' 不断阻止我的代码工作
- reactjs - React:使用 axios 将 FormData 发送到 API