「標準変換」の版間の差分

MSY-07 (トーク | 投稿記録)
URLの修正
MSY-07 (トーク | 投稿記録)
機種依存文字を変換するソースコードを追加
1行目: 1行目:
== Kuro版 ==
半角カタカナを全角カタカナに、全角英数字を半角英数字に変換します。文字列変換のサンプルとしても最適かも。
半角カタカナを全角カタカナに、全角英数字を半角英数字に変換します。文字列変換のサンプルとしても最適かも。


=== ソースコード ===
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
215行目: 217行目:
   }
   }
   s2 += s1.substring(i, i + 1);
   s2 += s1.substring(i, i + 1);
}
document.selection.Text = s2;
</syntaxhighlight>
== MSY-07版 ==
機種依存文字を機種に依存しない文字に変換します。
Kuro氏が作成した標準変換は2文字までしか変換することができないため、改造して10文字まで変換できるようにしました。なお、「j = 10」の値を変更すれば、11文字以上を変換することもできます。
=== ソースコード ===
<syntaxhighlight lang="javascript">
if (document.selection.Text == "")
  document.selection.SelectAll();
var map = new Array();
map["Ⅰ"] = "I";
map["Ⅱ"] = "II";
map["Ⅲ"] = "III";
map["Ⅳ"] = "IV";
map["Ⅴ"] = "V";
map["Ⅵ"] = "VI";
map["Ⅶ"] = "VII";
map["Ⅷ"] = "VIII";
map["Ⅸ"] = "IX";
map["Ⅹ"] = "X";
map["Ⅺ"] = "XI";
map["Ⅻ"] = "XII";
map["ⅰ"] = "i";
map["ⅱ"] = "ii";
map["ⅲ"] = "iii";
map["ⅳ"] = "iv";
map["ⅴ"] = "v";
map["ⅵ"] = "vi";
map["ⅶ"] = "vii";
map["ⅷ"] = "viii";
map["ⅸ"] = "ix";
map["ⅹ"] = "x";
map["ⅺ"] = "xi";
map["ⅻ"] = "xii";
map["①"] = "(1)";
map["②"] = "(2)";
map["③"] = "(3)";
map["④"] = "(4)";
map["⑤"] = "(5)";
map["⑥"] = "(6)";
map["⑦"] = "(7)";
map["⑧"] = "(8)";
map["⑨"] = "(9)";
map["⑩"] = "(10)";
map["⑪"] = "(11)";
map["⑫"] = "(12)";
map["⑬"] = "(13)";
map["⑭"] = "(14)";
map["⑮"] = "(15)";
map["⑯"] = "(16)";
map["⑰"] = "(17)";
map["⑱"] = "(18)";
map["⑲"] = "(19)";
map["⑳"] = "(20)";
map["㉑"] = "(21)";
map["㉒"] = "(22)";
map["㉓"] = "(23)";
map["㉔"] = "(24)";
map["㉕"] = "(25)";
map["㉖"] = "(26)";
map["㉗"] = "(27)";
map["㉘"] = "(28)";
map["㉙"] = "(29)";
map["㉚"] = "(30)";
map["㉛"] = "(31)";
map["㉜"] = "(32)";
map["㉝"] = "(33)";
map["㉞"] = "(34)";
map["㉟"] = "(35)";
map["㊱"] = "(36)";
map["㊲"] = "(37)";
map["㊳"] = "(38)";
map["㊴"] = "(39)";
map["㊵"] = "(40)";
map["㊶"] = "(41)";
map["㊷"] = "(42)";
map["㊸"] = "(43)";
map["㊹"] = "(44)";
map["㊺"] = "(45)";
map["㊻"] = "(46)";
map["㊼"] = "(47)";
map["㊽"] = "(48)";
map["㊾"] = "(49)";
map["㊿"] = "(50)";
var s1 = document.selection.Text;
var s2 = "";
for (var i = 0; i < s1.length;) {
  var matched = false;
  for (var j = 10; j >= 1; j--) {
    var c = map[s1.substring(i, i + j)];
    if (c) {
      s2 += c;
      i += j;
      matched = true;
      break;
    }
  }
  if (!matched) {
    s2 += s1.charAt(i);
    i++;
  }
}
}
document.selection.Text = s2;
document.selection.Text = s2;
</syntaxhighlight>
</syntaxhighlight>
スポンサーリンク