如何在Google Apps脚本中以编程方式添加拼音变音符号?

问题描述 投票:0回答:1

我想编写一个函数dia,该函数将拼音变音符号添加到所提供的字符中,例如,

dia('a', 1) == 'ā'
dia('a', 2) == 'á'
dia('a', 3) == 'ǎ'
dia('a', 4) == 'à'

而且我不想对所有变体进行硬编码。怎么做?

string google-apps-script diacritics cjk
1个回答
1
投票

此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)); // -> 'à'

如何运作:

  1. 检查字符和音调编号的有效性。

  2. 将适当的变音符号连接到字符上。

  3. 将结果标准化为组合形式,然后返回。

© www.soinside.com 2019 - 2024. All rights reserved.