- 締切済み
Javascriptでの半角記号→全角記号へ変換
JavaScriptで半角記号を全角記号に変換するプログラムを書いています。 内容としては、 !”#$%&’()*+,-./:;<=>?@[¥]^_`{|}~ 上記の半角記号があったら全角に変換したいのです。 ’や”などがあることで、うまく配列に入れて回すことができません。 どうしたら良いでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- fujillin
- ベストアンサー率61% (1594/2576)
>うまく配列に入れて回すことができません #2様の回答にありますが、適当にエスケープしてあげればいいだけでは? そのまま配列的に置換えるならこんな感じ? (全角文字にタイポがあるかも…) function stringChecker(str) { var c = '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'; var cr = '!”#$%&’()*+,-./:;<=>?@[¥]^_`{|}~'; for (var i=0; i<c.length; i++) while (str != (str = str.replace(c.substr(i,1),cr.substr(i,1)))); return str; }
- babu_baboo
- ベストアンサー率51% (268/525)
ごめんなさい。かいとうになってませんでした。 ["'", '"', ~] とか var str = '!"#$\'()'.split(''); var str = "!\"#$'()".split(''); 「\」が、きも。
お礼
回答ありがとうございます。 仰るように、「\」をつけることでうまく回すことができました!! ありがとうございました。
- babu_baboo
- ベストアンサー率51% (268/525)
String.prototype.toAscii = function(){ return this.replace(/”/g,'"').replace(/’/g,"'").replace(/([!-~ ])/g, function (char){ return String.fromCharCode(char.charCodeAt(0) - 65248)} ); }; String.prototype.toZenkaku = function(){ return this.replace(/"/g,'”').replace(/'/g,"’").replace(/([!-~])/g, function (char){ return String.fromCharCode(char.charCodeAt(0) + 65248)} ); }; おせんするとか、してきありそうだけど。おしえて~
お礼
回答ありがとうございます!! 入れ違いで解決していたのですが、「\」を入れることで無事に動かすことができました!! ありがとうございました。