「濁点・半濁音の結合(1文字化)」の版間の差分
ナビゲーションに移動
検索に移動
ページの作成:「== 概要 == 濁点(結合文字 U+3099, 独立文字 U+309B, 半角 U+FF9E) 半濁音(結合文字 U+309A, 独立文字 U+309C, 半角 U+FF9F) を結合 例 「じ」U+3057 U+3099を「じ」U+3058に変換 == 使い方 == Mery 3.8.3で動作確認 以下のソースコードをNormalizeDakuten.js など適当な名前で保存 QuickJSの場合 一行目に#language = “quickjs”を追加 注意 素人のAI作成です == ソースコード == <s…」 |
編集の要約なし |
||
| 6行目: | 6行目: | ||
例 「じ」U+3057 U+3099を「じ」U+3058に変換 | 例 「じ」U+3057 U+3099を「じ」U+3058に変換 | ||
注意 素人のAI作成です | |||
== 使い方 == | == 使い方 == | ||
| 15行目: | 17行目: | ||
QuickJSの場合 | QuickJSの場合 | ||
一行目に#language = “quickjs”を追加 | 一行目に#language = “quickjs”を追加 | ||
== ソースコード == | == ソースコード == | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript" copy> | ||
#title="濁点・半濁音の結合(1文字化)" | #title="濁点・半濁音の結合(1文字化)" | ||
// 選択範囲、またはファイル全体の分離した濁点・半濁点を1文字に結合します | // 選択範囲、またはファイル全体の分離した濁点・半濁点を1文字に結合します | ||
2026年3月30日 (月) 18:48時点における版
概要
濁点(結合文字 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) {
// meCollapseStart は定数(0)
sel.Collapse(0);
}
変更履歴
- 2026-03-30: 初版公開
スポンサーリンク