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", "ï¼"); 118 asciiMap.add("1", "ï¼"); 119 asciiMap.add("2", "ï¼"); 120 asciiMap.add("3", "ï¼"); 121 asciiMap.add("4", "ï¼"); 122 asciiMap.add("5", "ï¼"); 123 asciiMap.add("6", "ï¼"); 124 asciiMap.add("7", "ï¼"); 125 asciiMap.add("8", "ï¼"); 126 asciiMap.add("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", "ï½"); 176 asciiMap.add("b", "ï½"); 177 asciiMap.add("c", "ï½"); 178 asciiMap.add("d", "ï½"); 179 asciiMap.add("e", "ï½ "); 180 asciiMap.add("f", "ï½"); 181 asciiMap.add("g", "ï½"); 182 asciiMap.add("h", "ï½"); 183 asciiMap.add("i", "ï½"); 184 asciiMap.add("j", "ï½"); 185 asciiMap.add("k", "ï½"); 186 asciiMap.add("l", "ï½"); 187 asciiMap.add("m", "ï½"); 188 asciiMap.add("n", "ï½"); 189 asciiMap.add("o", "ï½"); 190 asciiMap.add("p", "ï½"); 191 asciiMap.add("q", "ï½"); 192 asciiMap.add("r", "ï½"); 193 asciiMap.add("s", "ï½"); 194 asciiMap.add("t", "ï½"); 195 asciiMap.add("u", "ï½"); 196 asciiMap.add("v", "ï½"); 197 asciiMap.add("w", "ï½"); 198 asciiMap.add("x", "ï½"); 199 asciiMap.add("y", "ï½"); 200 asciiMap.add("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.