PageSourceSearch

https://www.yamakei.co.jp/static/plugins/AForm/js/zenhanconv.js

js yamakei.co.jp collected 2026-10-02 06:16:21 UTC 9,577 bytes, 371 lines download raw bytes

1
2//---------------------------------------------------------
3// 全角・半角変換 機能追加スクリプト
4//
5// 2005/2/26 Kazuhiko Arase
6//
7// String に、以下のメソッドを拡張します。
8//
9// ・半角Ascii変換
10// toHankakuAscii()
11//
12// ・全角Ascii変換
13// toZenkakuAscii()
14//
15// ・半角カナ変換
16// toHankakuKana()
17//
18// ・全角カナ変換
19// toZenkakuKana()
20//
21// ・半角変換
22// toHankaku()
23//
24// ・全角変換
25// toZenkaku()
26//
27// ・標準変換(半角Ascii, 全角カナ)
28// toNormal()
29//
30/**
31 * Modified by ARK-Web Co.,Ltd.
32 * Base Version : 
33 * Copyright (c) ARK-Web Co.,Ltd.
34 */
35function InstallZenHanConversion() {
36
37    function ConversionMap() {
38        this.map1 = {};
39        this.map2 = {};
40    }
41
42    ConversionMap.prototype = {
43
44        add : function(s1, s2) {
45
46            if (!this.map1[s1]) {
47                this.map1[s1] = s2;
48            }
49
50            if (!this.map2[s2]) {
51                this.map2[s2] = s1;
52            }
53        },
54
55        convert : function(s, reverse) {
56
57            var map = !reverse? this.map1 : this.map2;
58
59            var converted = "";
60
61            for (var i = 0;i < s.length;i++) {
62
63                if (i + 1 < s.length) {
64                    var c = map[s.substring(i, i + 2)];
65                    if (c) {
66                        converted += c;
67                        i++;
68                        continue;
69                    }
70                }
71
72                var c = map[s.substring(i, i + 1)];
73                if (c) {
74                    converted += c;
75                    continue;
76                }
77
78                // 変換テーブルに該当無し
79                converted += s.substring(i, i + 1);
80            }
81
82            return converted;
83        }
84    };
85
86    //---------------------------------------------------------
87    // 全角-半角 マッピング (ASCII)
88    //
89
90    var asciiMap = new ConversionMap();
91
92    asciiMap.add(" ", " ");
93    asciiMap.add("!", "!");
94
95    // 2重引用符
96    //asciiMap.add("\"", """);
97    asciiMap.add("\"", "“");
98    asciiMap.add("\"", "”");
99
100    asciiMap.add("#", "#");
101    asciiMap.add("$", "$");
102    asciiMap.add("%", "%");
103    asciiMap.add("&", "&");
104    asciiMap.add("'", "’");
105    asciiMap.add("(", "(");
106    asciiMap.add(")", ")");
107    asciiMap.add("*", "*");
108    asciiMap.add("+", "+");
109    asciiMap.add(",", ",");
110    asciiMap.add("-", "-");
111    asciiMap.add("-", "―");
112    asciiMap.add("-", "‐");
113    asciiMap.add("-", "ー");
114    asciiMap.add("-", "ï½°");
115    asciiMap.add(".", ".");
116    asciiMap.add("/", "/");
117    asciiMap.add("0", "0");
118    asciiMap.add("1", "1");
119    asciiMap.add("2", "2");
120    asciiMap.add("3", "3");
121    asciiMap.add("4", "4");
122    asciiMap.add("5", "5");
123    asciiMap.add("6", "6");
124    asciiMap.add("7", "7");
125    asciiMap.add("8", "8");
126    asciiMap.add("9", "9");
127    asciiMap.add(":", ":");
128    asciiMap.add(";", ";");
129    asciiMap.add("<", "<");
130    asciiMap.add("=", "=");
131    asciiMap.add(">", ">");
132    asciiMap.add("?", "?");
133    asciiMap.add("@", "ï¼ ");
134    asciiMap.add("A", "A");
135    asciiMap.add("B", "ï¼¢");
136    asciiMap.add("C", "ï¼£");
137    asciiMap.add("D", "D");
138    asciiMap.add("E", "ï¼¥");
139    asciiMap.add("F", "F");
140    asciiMap.add("G", "ï¼§");
141    asciiMap.add("H", "H");
142    asciiMap.add("I", "I");
143    asciiMap.add("J", "J");
144    asciiMap.add("K", "K");
145    asciiMap.add("L", "L");
146    asciiMap.add("M", "ï¼­");
147    asciiMap.add("N", "ï¼®");
148    asciiMap.add("O", "O");
149    asciiMap.add("P", "ï¼°");
150    asciiMap.add("Q", "ï¼±");
151    asciiMap.add("R", "ï¼²");
152    asciiMap.add("S", "ï¼³");
153    asciiMap.add("T", "ï¼´");
154    asciiMap.add("U", "ï¼µ");
155    asciiMap.add("V", "ï¼¶");
156    asciiMap.add("W", "ï¼·");
157    asciiMap.add("X", "X");
158    asciiMap.add("Y", "ï¼¹");
159    asciiMap.add("Z", "Z");
160    asciiMap.add("[", "ï¼»");
161
162    // 円記号
163    //asciiMap.add("\\", "ï¼¼");
164    asciiMap.add("\\", "ï¿¥");
165
166    asciiMap.add("]", "ï¼½");
167    asciiMap.add("^", "ï¼¾");
168    asciiMap.add("_", "_");
169
170    // 単一引用符
171    //asciiMap.add("`", "'");
172    asciiMap.add("`", "‘");
173    asciiMap.add("`", "’");
174
175    asciiMap.add("a", "a");
176    asciiMap.add("b", "b");
177    asciiMap.add("c", "c");
178    asciiMap.add("d", "d");
179    asciiMap.add("e", "e");
180    asciiMap.add("f", "f");
181    asciiMap.add("g", "g");
182    asciiMap.add("h", "h");
183    asciiMap.add("i", "i");
184    asciiMap.add("j", "j");
185    asciiMap.add("k", "k");
186    asciiMap.add("l", "l");
187    asciiMap.add("m", "m");
188    asciiMap.add("n", "n");
189    asciiMap.add("o", "o");
190    asciiMap.add("p", "p");
191    asciiMap.add("q", "q");
192    asciiMap.add("r", "r");
193    asciiMap.add("s", "s");
194    asciiMap.add("t", "t");
195    asciiMap.add("u", "u");
196    asciiMap.add("v", "v");
197    asciiMap.add("w", "w");
198    asciiMap.add("x", "x");
199    asciiMap.add("y", "y");
200    asciiMap.add("z", "z");
201    asciiMap.add("{", "{");
202    asciiMap.add("|", "|");
203    asciiMap.add("}", "}");
204    asciiMap.add("~", "~");
205
206
207    //---------------------------------------------------------
208    // 全角-半角 マッピング (カタカナ)
209    //
210
211
212    var kanaMap = new ConversionMap();
213
214    kanaMap.add("。", "。");
215    kanaMap.add("「", "「");
216    kanaMap.add("」", "」");
217    kanaMap.add("、", "、");
218    kanaMap.add("・", "・");
219    kanaMap.add("ヲ", "ヲ");
220
221    kanaMap.add("ァ", "ァ");
222    kanaMap.add("ィ", "ィ");
223    kanaMap.add("ゥ", "ゥ");
224    kanaMap.add("ェ", "ェ");
225    kanaMap.add("ォ", "ォ");
226
227    kanaMap.add("ャ", "ャ");
228    kanaMap.add("ュ", "ュ");
229    kanaMap.add("ョ", "ョ");
230
231    kanaMap.add("ッ", "ッ");
232
233    kanaMap.add("ー", "ー");
234
235    kanaMap.add("ア", "ア");
236    kanaMap.add("イ", "イ");
237    kanaMap.add("ウ", "ウ");
238    kanaMap.add("エ", "エ");
239    kanaMap.add("オ", "オ");
240
241    kanaMap.add("カ", "カ");
242    kanaMap.add("キ", "キ");
243    kanaMap.add("ク", "ク");
244    kanaMap.add("ケ", "ケ");
245    kanaMap.add("コ", "コ");
246
247    kanaMap.add("ガ", "ガ");
248    kanaMap.add("ギ", "ギ");
249    kanaMap.add("グ", "グ");
250    kanaMap.add("ゲ", "ゲ");
251    kanaMap.add("ゴ", "ゴ");
252
253    kanaMap.add("サ", "サ");
254    kanaMap.add("シ", "シ");
255    kanaMap.add("ス", "ス");
256    kanaMap.add("セ", "セ");
257    kanaMap.add("ソ", "ソ");
258
259    kanaMap.add("ザ", "ザ");
260    kanaMap.add("ジ", "ジ");
261    kanaMap.add("ズ", "ズ");
262    kanaMap.add("ゼ", "ゼ");
263    kanaMap.add("ゾ", "ゾ");
264
265    kanaMap.add("タ", "タ");
266    kanaMap.add("チ", "チ");
267    kanaMap.add("ツ", "ツ");
268    kanaMap.add("テ", "テ");
269    kanaMap.add("ト", "ト");
270
271    kanaMap.add("ダ", "ダ");
272    kanaMap.add("ヂ", "ヂ");
273    kanaMap.add("ヅ", "ヅ");
274    kanaMap.add("デ", "デ");
275    kanaMap.add("ド", "ド");
276
277    kanaMap.add("ナ", "ナ");
278    kanaMap.add("ニ", "ニ");
279    kanaMap.add("ヌ", "ヌ");
280    kanaMap.add("ネ", "ネ");
281    kanaMap.add("ノ", "ノ");
282
283    kanaMap.add("ハ", "ハ");
284    kanaMap.add("ヒ", "ヒ");
285    kanaMap.add("フ", "フ");
286    kanaMap.add("ヘ", "ヘ");
287    kanaMap.add("ホ", "ホ");
288
289    kanaMap.add("バ", "バ");
290    kanaMap.add("ビ", "ビ");
291    kanaMap.add("ブ", "ブ");
292    kanaMap.add("ベ", "ベ");
293    kanaMap.add("ボ", "ボ");
294
295    kanaMap.add("パ", "パ");
296    kanaMap.add("ピ", "ピ");
297    kanaMap.add("プ", "プ");
298    kanaMap.add("ペ", "ペ");
299    kanaMap.add("ポ", "ポ");
300
301    kanaMap.add("マ", "マ");
302    kanaMap.add("ミ", "ミ");
303    kanaMap.add("ム", "ム");
304    kanaMap.add("メ", "メ");
305    kanaMap.add("モ", "モ");
306
307    kanaMap.add("ヤ", "ヤ");
308    kanaMap.add("ユ", "ユ");
309    kanaMap.add("ヨ", "ヨ");
310
311    kanaMap.add("ラ", "ラ");
312    kanaMap.add("リ", "リ");
313    kanaMap.add("ル", "ル");
314    kanaMap.add("レ", "レ");
315    kanaMap.add("ロ", "ロ");
316
317    kanaMap.add("ワ", "ワ");
318    kanaMap.add("ン", "ン");
319
320    kanaMap.add("ヴ", "ヴ");
321
322
323    kanaMap.add("゛", "゙");
324    kanaMap.add("゜", "゚");
325
326    kanaMap.add("ヰ", "イ");
327    kanaMap.add("ヱ", "エ");
328    kanaMap.add("ヮ", "ワ");
329    kanaMap.add("ヵ", "カ");
330    kanaMap.add("ヶ", "ケ");
331
332
333
334    String.prototype.toHankakuAscii = function() {
335        return asciiMap.convert(this, true);
336    }
337
338    String.prototype.toZenkakuAscii = function() {
339        return asciiMap.convert(this, false);
340    }
341
342    String.prototype.toHankakuKana = function() {
343        return kanaMap.convert(this, false);
344    }
345
346    String.prototype.toZenkakuKana = function() {
347        return kanaMap.convert(this, true);
348    }
349
350    String.prototype.toHankaku = function() {
351        return this.toHankakuKana().toHankakuAscii();
352    }
353
354    String.prototype.toZenkaku = function() {
355        return this.toZenkakuKana().toZenkakuAscii();
356    }
357
358    String.prototype.toNormal = function() {
359        return this.toZenkakuKana().toHankakuAscii();
360    }
361
362    String.prototype.isKanaOnly = function() {
363        return this.match(/^[ァ-ー]+$/);
364    }
365}
366
367// 機能インストール
368InstallZenHanConversion();
369
370
371

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.