//--------------------------------------------------------- // 全角・半角変換 機能追加スクリプト // // 2005/2/26 Kazuhiko Arase // // String に、以下のメソッドを拡張します。 // // ・半角Ascii変換 // toHankakuAscii() // // ・全角Ascii変換 // toZenkakuAscii() // // ・半角カナ変換 // toHankakuKana() // // ・全角カナ変換 // toZenkakuKana() // // ・半角変換 // toHankaku() // // ・全角変換 // toZenkaku() // // ・標準変換(半角Ascii, 全角カナ) // toNormal() // /** * Modified by ARK-Web Co.,Ltd. * Base Version : * Copyright (c) ARK-Web Co.,Ltd. */ function InstallZenHanConversion() { function ConversionMap() { this.map1 = {}; this.map2 = {}; } ConversionMap.prototype = { add : function(s1, s2) { if (!this.map1[s1]) { this.map1[s1] = s2; } if (!this.map2[s2]) { this.map2[s2] = s1; } }, convert : function(s, reverse) { var map = !reverse? this.map1 : this.map2; var converted = ""; for (var i = 0;i < s.length;i++) { if (i + 1 < s.length) { var c = map[s.substring(i, i + 2)]; if (c) { converted += c; i++; continue; } } var c = map[s.substring(i, i + 1)]; if (c) { converted += c; continue; } // 変換テーブルに該当無し converted += s.substring(i, i + 1); } return converted; } }; //--------------------------------------------------------- // 全角-半角 マッピング (ASCII) // var asciiMap = new ConversionMap(); asciiMap.add(" ", " "); asciiMap.add("!", "!"); // 2重引用符 //asciiMap.add("\"", """); asciiMap.add("\"", "“"); asciiMap.add("\"", "”"); asciiMap.add("#", "#"); asciiMap.add("$", "$"); asciiMap.add("%", "%"); asciiMap.add("&", "&"); asciiMap.add("'", "’"); asciiMap.add("(", "("); asciiMap.add(")", ")"); asciiMap.add("*", "*"); asciiMap.add("+", "+"); asciiMap.add(",", ","); asciiMap.add("-", "-"); asciiMap.add("-", "―"); asciiMap.add("-", "‐"); asciiMap.add("-", "ー"); asciiMap.add("-", "ー"); asciiMap.add(".", "."); asciiMap.add("/", "/"); asciiMap.add("0", "0"); asciiMap.add("1", "1"); asciiMap.add("2", "2"); asciiMap.add("3", "3"); asciiMap.add("4", "4"); asciiMap.add("5", "5"); asciiMap.add("6", "6"); asciiMap.add("7", "7"); asciiMap.add("8", "8"); asciiMap.add("9", "9"); asciiMap.add(":", ":"); asciiMap.add(";", ";"); asciiMap.add("<", "<"); asciiMap.add("=", "="); asciiMap.add(">", ">"); asciiMap.add("?", "?"); asciiMap.add("@", "@"); asciiMap.add("A", "A"); asciiMap.add("B", "B"); asciiMap.add("C", "C"); asciiMap.add("D", "D"); asciiMap.add("E", "E"); asciiMap.add("F", "F"); asciiMap.add("G", "G"); asciiMap.add("H", "H"); asciiMap.add("I", "I"); asciiMap.add("J", "J"); asciiMap.add("K", "K"); asciiMap.add("L", "L"); asciiMap.add("M", "M"); asciiMap.add("N", "N"); asciiMap.add("O", "O"); asciiMap.add("P", "P"); asciiMap.add("Q", "Q"); asciiMap.add("R", "R"); asciiMap.add("S", "S"); asciiMap.add("T", "T"); asciiMap.add("U", "U"); asciiMap.add("V", "V"); asciiMap.add("W", "W"); asciiMap.add("X", "X"); asciiMap.add("Y", "Y"); asciiMap.add("Z", "Z"); asciiMap.add("[", "["); // 円記号 //asciiMap.add("\\", "\"); asciiMap.add("\\", "¥"); asciiMap.add("]", "]"); asciiMap.add("^", "^"); asciiMap.add("_", "_"); // 単一引用符 //asciiMap.add("`", "'"); asciiMap.add("`", "‘"); asciiMap.add("`", "’"); asciiMap.add("a", "a"); asciiMap.add("b", "b"); asciiMap.add("c", "c"); asciiMap.add("d", "d"); asciiMap.add("e", "e"); asciiMap.add("f", "f"); asciiMap.add("g", "g"); asciiMap.add("h", "h"); asciiMap.add("i", "i"); asciiMap.add("j", "j"); asciiMap.add("k", "k"); asciiMap.add("l", "l"); asciiMap.add("m", "m"); asciiMap.add("n", "n"); asciiMap.add("o", "o"); asciiMap.add("p", "p"); asciiMap.add("q", "q"); asciiMap.add("r", "r"); asciiMap.add("s", "s"); asciiMap.add("t", "t"); asciiMap.add("u", "u"); asciiMap.add("v", "v"); asciiMap.add("w", "w"); asciiMap.add("x", "x"); asciiMap.add("y", "y"); asciiMap.add("z", "z"); asciiMap.add("{", "{"); asciiMap.add("|", "|"); asciiMap.add("}", "}"); asciiMap.add("~", "~"); //--------------------------------------------------------- // 全角-半角 マッピング (カタカナ) // var kanaMap = new ConversionMap(); kanaMap.add("。", "。"); kanaMap.add("「", "「"); kanaMap.add("」", "」"); kanaMap.add("、", "、"); kanaMap.add("・", "・"); kanaMap.add("ヲ", "ヲ"); kanaMap.add("ァ", "ァ"); kanaMap.add("ィ", "ィ"); kanaMap.add("ゥ", "ゥ"); kanaMap.add("ェ", "ェ"); kanaMap.add("ォ", "ォ"); kanaMap.add("ャ", "ャ"); kanaMap.add("ュ", "ュ"); kanaMap.add("ョ", "ョ"); kanaMap.add("ッ", "ッ"); kanaMap.add("ー", "ー"); kanaMap.add("ア", "ア"); kanaMap.add("イ", "イ"); kanaMap.add("ウ", "ウ"); kanaMap.add("エ", "エ"); kanaMap.add("オ", "オ"); kanaMap.add("カ", "カ"); kanaMap.add("キ", "キ"); kanaMap.add("ク", "ク"); kanaMap.add("ケ", "ケ"); kanaMap.add("コ", "コ"); kanaMap.add("ガ", "ガ"); kanaMap.add("ギ", "ギ"); kanaMap.add("グ", "グ"); kanaMap.add("ゲ", "ゲ"); kanaMap.add("ゴ", "ゴ"); kanaMap.add("サ", "サ"); kanaMap.add("シ", "シ"); kanaMap.add("ス", "ス"); kanaMap.add("セ", "セ"); kanaMap.add("ソ", "ソ"); kanaMap.add("ザ", "ザ"); kanaMap.add("ジ", "ジ"); kanaMap.add("ズ", "ズ"); kanaMap.add("ゼ", "ゼ"); kanaMap.add("ゾ", "ゾ"); kanaMap.add("タ", "タ"); kanaMap.add("チ", "チ"); kanaMap.add("ツ", "ツ"); kanaMap.add("テ", "テ"); kanaMap.add("ト", "ト"); kanaMap.add("ダ", "ダ"); kanaMap.add("ヂ", "ヂ"); kanaMap.add("ヅ", "ヅ"); kanaMap.add("デ", "デ"); kanaMap.add("ド", "ド"); kanaMap.add("ナ", "ナ"); kanaMap.add("ニ", "ニ"); kanaMap.add("ヌ", "ヌ"); kanaMap.add("ネ", "ネ"); kanaMap.add("ノ", "ノ"); kanaMap.add("ハ", "ハ"); kanaMap.add("ヒ", "ヒ"); kanaMap.add("フ", "フ"); kanaMap.add("ヘ", "ヘ"); kanaMap.add("ホ", "ホ"); kanaMap.add("バ", "バ"); kanaMap.add("ビ", "ビ"); kanaMap.add("ブ", "ブ"); kanaMap.add("ベ", "ベ"); kanaMap.add("ボ", "ボ"); kanaMap.add("パ", "パ"); kanaMap.add("ピ", "ピ"); kanaMap.add("プ", "プ"); kanaMap.add("ペ", "ペ"); kanaMap.add("ポ", "ポ"); kanaMap.add("マ", "マ"); kanaMap.add("ミ", "ミ"); kanaMap.add("ム", "ム"); kanaMap.add("メ", "メ"); kanaMap.add("モ", "モ"); kanaMap.add("ヤ", "ヤ"); kanaMap.add("ユ", "ユ"); kanaMap.add("ヨ", "ヨ"); kanaMap.add("ラ", "ラ"); kanaMap.add("リ", "リ"); kanaMap.add("ル", "ル"); kanaMap.add("レ", "レ"); kanaMap.add("ロ", "ロ"); kanaMap.add("ワ", "ワ"); kanaMap.add("ン", "ン"); kanaMap.add("ヴ", "ヴ"); kanaMap.add("゛", "゙"); kanaMap.add("゜", "゚"); kanaMap.add("ヰ", "イ"); kanaMap.add("ヱ", "エ"); kanaMap.add("ヮ", "ワ"); kanaMap.add("ヵ", "カ"); kanaMap.add("ヶ", "ケ"); String.prototype.toHankakuAscii = function() { return asciiMap.convert(this, true); } String.prototype.toZenkakuAscii = function() { return asciiMap.convert(this, false); } String.prototype.toHankakuKana = function() { return kanaMap.convert(this, false); } String.prototype.toZenkakuKana = function() { return kanaMap.convert(this, true); } String.prototype.toHankaku = function() { return this.toHankakuKana().toHankakuAscii(); } String.prototype.toZenkaku = function() { return this.toZenkakuKana().toZenkakuAscii(); } String.prototype.toNormal = function() { return this.toZenkakuKana().toHankakuAscii(); } String.prototype.isKanaOnly = function() { return this.match(/^[ァ-ー]+$/); } } // 機能インストール InstallZenHanConversion();