(人様の) 半角カナ→全角カタカナ変換
by ethertank
HTML
<p>from <a href="http://www.openspc2.org/reibun/javascript/business/003/index.html" title="半角カナから全角カナへ変換する(濁点等対応版)">半角カナから全角カナへ変換する(濁点等対応版)</a></p>
<p>全く思いつかなかったパターン。なるほど(・ω・´;)</p>
JavaScript
String.prototype.toZenkaku = function() {
var txt = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッ、。ー「」゙゚";
var zen = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッ、。ー「」";
var str = "";
zen += " ガギグゲゴザジズゼゾダヂヅデド バビブベボ ";
zen += " パピプペポ ";
for (var i = 0, len = this.length; i < len; ++i) {
c = this.charAt(i);
cnext = this.charAt(i + 1);
n = txt.indexOf(c, 0);
nnext = txt.indexOf(cnext, 0);
if (n >= 0) {
if (nnext == 60) {
c = zen.charAt(n + 60);
i++;
} else if (nnext == 61) {
c = zen.charAt(n + 120);
i++;
} else {
c = zen.charAt(n);
}
}
if ((n != 60) && (n != 61)) {
str += c;
}
}
return str;
}
document.body.appendChild(
document.createElement("p").appendChild(
document.createTextNode("ガラパゴス".toZenkaku())
)
);