Skip to content

Instantly share code, notes, and snippets.

@ngocnd0242
Last active October 18, 2021 14:46
Show Gist options
  • Save ngocnd0242/5af788c467cdc1b6896daeb599af166b to your computer and use it in GitHub Desktop.
Save ngocnd0242/5af788c467cdc1b6896daeb599af166b to your computer and use it in GitHub Desktop.
Full-width Hiragana ⇔ Full-width Katakana ⇔ Half-width Katakana conversion
function set_values(){
var sh = SpreadsheetApp.getActiveSheet();
var lastrow = sh.getLastRow();
var range = sh.getRange("A2:A" + lastrow);
var values = range.getValues();
for(var i = 0; i < values.length; i++){
var row = i + 1;
var kana_result = hira_kana_hankana(hira, kana, values[i][0]);
var hankana_result = hira_kana_hankana(hira, hankana, values[i][0]);
sh.getRange("B" + (row + 1)).setValue(kana_result);
sh.getRange("C" + (row + 1)).setValue(hankana_result);
}
}
var hira = ["あ", "い", "う", "え", "お", "か", "き", "く", "け", "こ", "さ", "し", "す", "せ", "そ", "た", "ち", "つ", "て", "と", "な", "に", "ぬ", "ね", "の", "は", "ひ", "ふ", "へ", "ほ", "ま", "み", "む", "め", "も", "や", "ゆ", "よ", "ら", "り", "る", "れ", "ろ", "わ", "を", "ん", "が", "ぎ", "ぐ", "げ", "ご", "ざ", "じ", "ず", "ぜ", "ぞ", "だ", "ぢ", "づ", "で", "ど", "ば", "び", "ぶ", "べ", "ぼ", "ぱ", "ぴ", "ぷ", "ぺ", "ぽ", "ぁ", "ぃ", "ぅ", "ぇ", "ぉ", "ゃ", "ゅ", "ょ", "っ", "ゔ"];
var kana = ["ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク", "ケ", "コ", "サ", "シ", "ス", "セ", "ソ", "タ", "チ", "ツ", "テ", "ト", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "ヒ", "フ", "ヘ", "ホ", "マ", "ミ", "ム", "メ", "モ", "ヤ", "ユ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", "ヲ", "ン", "ガ", "ギ", "グ", "ゲ", "ゴ", "ザ", "ジ", "ズ", "ゼ", "ゾ", "ダ", "ヂ", "ヅ", "デ", "ド", "バ", "ビ", "ブ", "ベ", "ボ", "パ", "ピ", "プ", "ペ", "ポ", "ァ", "ィ", "ゥ", "ェ", "ォ", "ャ", "ュ", "ョ", "ッ", "ヴ"];
var hankana = ["ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク", "ケ", "コ", "サ", "シ", "ス", "セ", "ソ", "タ", "チ", "ツ", "テ", "ト", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "ヒ", "フ", "ヘ", "ホ", "マ", "ミ", "ム", "メ", "モ", "ヤ", "ユ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", "ヲ", "ン", "ガ", "ギ", "グ", "ゲ", "ゴ", "ザ", "ジ", "ズ", "ゼ", "ゾ", "ダ", "ヂ", "ヅ", "デ", "ド", "バ", "ビ", "ブ", "ベ", "ボ", "パ", "ピ", "プ", "ペ", "ポ", "ァ", "ィ", "ゥ", "ェ", "ォ", "ャ", "ュ", "ョ", "ッ", "ヴ"];
function hira_kana_hankana(input, output, text) {
var result = "";
var array = [];
for (var i = 0; i < text.length; i++) {
if (text[i] == "゙" || text[i] == "゚") {
array[array.length - 1] = (text[i - 1] + text[i]);
} else {
array.push(text[i]);
}
}
for (var j = 0; j < array.length; j++) {
var index = input.indexOf(array[j]);
if (index == -1) {
result = result + array[j];
} else {
result = result + output[index];
}
}
return result;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment