「濁点・半濁音の結合(1文字化)」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
MSY-07 (トーク | 投稿記録)
空白の除去
 
(2人の利用者による、間の4版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
選択範囲、またはファイル全体の分離した濁点・半濁点を1文字に結合します
選択範囲、またはファイル全体の分離した濁点・半濁点を1文字に結合します。


濁点(結合文字 U+3099, 独立文字 U+309B, 半角 U+FF9E)
* 濁点(結合文字 U+3099、独立文字 U+309B、半角 U+FF9E)
* 半濁音(結合文字 U+309A、独立文字 U+309C、半角 U+FF9F)


半濁音(結合文字 U+309A, 独立文字 U+309C, 半角 U+FF9F)
例:「じ」U+3057 U+3099を「じ」U+3058に変換。


例 「じ」U+3057 U+3099を「じ」U+3058に変換
注意:素人のAI作成です。


注意 素人のAI作成です
== 使い方 ==
Mery 3.8.3で動作確認。


== 使い方 ==
以下のソースコードをNormalizeDakuten.jsなど適当な名前で保存。
Mery 3.8.3で動作確認
 
QuickJSの場合、一行目に


以下のソースコードをNormalizeDakuten.js
<syntaxhighlight lang="javascript" copy>
など適当な名前で保存
#language = "quickjs"
</syntaxhighlight>


QuickJSの場合
を追加。
一行目に#language = “quickjs”を追加


== ソースコード ==
== ソースコード ==
77行目: 80行目:
== 変更履歴 ==
== 変更履歴 ==
* 2026-03-30: 初版公開
* 2026-03-30: 初版公開
* 2026-03-31: 修正(uckyさんありがとうございます)

2026年4月1日 (水) 13:56時点における最新版

概要[編集]

選択範囲、またはファイル全体の分離した濁点・半濁点を1文字に結合します。

  • 濁点(結合文字 U+3099、独立文字 U+309B、半角 U+FF9E)
  • 半濁音(結合文字 U+309A、独立文字 U+309C、半角 U+FF9F)

例:「じ」U+3057 U+3099を「じ」U+3058に変換。

注意:素人のAI作成です。

使い方[編集]

Mery 3.8.3で動作確認。

以下のソースコードをNormalizeDakuten.jsなど適当な名前で保存。

QuickJSの場合、一行目に

#language = "quickjs"

を追加。

ソースコード[編集]

#title="濁点・半濁音の結合(1文字化)"
// 選択範囲、またはファイル全体の分離した濁点・半濁点を1文字に結合します

var sel = document.selection;
var isEmpty = sel.IsEmpty;

// テキストが選択されていない場合はファイル全体を選択
if (isEmpty) {
    sel.SelectAll();
}

var text = sel.Text;

if (text !== "") {
    // 半濁音の変換辞書
    var handakuMap = {
        "は":"ぱ", "ひ":"ぴ", "ふ":"ぷ", "へ":"ぺ", "ほ":"ぽ",
        "ハ":"パ", "ヒ":"ピ", "フ":"プ", "ヘ":"ペ", "ホ":"ポ"
    };

    // 濁音の変換辞書
    var dakuMap = {
        "か":"が", "き":"ぎ", "く":"ぐ", "け":"げ", "こ":"ご",
        "さ":"ざ", "し":"じ", "す":"ず", "せ":"ぜ", "そ":"ぞ",
        "た":"だ", "ち":"ぢ", "つ":"づ", "て":"で", "と":"ど",
        "は":"ば", "ひ":"び", "ふ":"ぶ", "へ":"べ", "ほ":"ぼ",
        "う":"ゔ", "ゝ":"ゞ",
        "カ":"ガ", "キ":"ギ", "ク":"グ", "ケ":"ゲ", "コ":"ゴ",
        "サ":"ザ", "シ":"ジ", "ス":"ズ", "セ":"ゼ", "ソ":"ゾ",
        "タ":"ダ", "チ":"ヂ", "ツ":"ヅ", "テ":"デ", "ト":"ド",
        "ハ":"バ", "ヒ":"ビ", "フ":"ブ", "ヘ":"ベ", "ホ":"ボ",
        "ウ":"ヴ", "ヽ":"ヾ", "ワ":"ヷ", "ヰ":"ヸ", "ヱ":"ヹ", "ヲ":"ヺ"
    };

    // 半濁点(結合文字 U+309A, 独立文字 U+309C, 半角 U+FF9F)の置換
    text = text.replace(/([はひふへほハヒフヘホ])[\u309A\u309C\uFF9F]/g, function(match, p1) {
        return handakuMap[p1];
    });

    // 濁点(結合文字 U+3099, 独立文字 U+309B, 半角 U+FF9E)の置換
    text = text.replace(/([かきくけこさしすせそたちつてとはひふへほうゝカキクケコサシスセソタチツテトハヒフヘホウヽワヰヱヲ])[\u3099\u309B\uFF9E]/g, function(match, p1) {
        return dakuMap[p1];
    });

    // 置換したテキストを反映
    sel.Text = text;
}

// もともと非選択状態だった場合は、カーソルを文書の先頭に移動
if (isEmpty) {
    sel.StartOfDocument();
}

変更履歴[編集]

  • 2026-03-30: 初版公開
  • 2026-03-31: 修正(uckyさんありがとうございます)
スポンサーリンク