• 締切済み

Javascriptでの半角記号→全角記号へ変換

JavaScriptで半角記号を全角記号に変換するプログラムを書いています。 内容としては、 !”#$%&’()*+,-./:;<=>?@[¥]^_`{|}~ 上記の半角記号があったら全角に変換したいのです。 ’や”などがあることで、うまく配列に入れて回すことができません。 どうしたら良いでしょうか?

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

>うまく配列に入れて回すことができません #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; }

kreuz_z
質問者

お礼

回答ありがとうございます!! 入れ違いで解決していたのですが、「\」を入れることで無事に動かすことができました!! ありがとうございました。

回答No.2

ごめんなさい。かいとうになってませんでした。 ["'", '"', ~] とか var str = '!"#$\'()'.split(''); var str = "!\"#$'()".split(''); 「\」が、きも。

kreuz_z
質問者

お礼

回答ありがとうございます。 仰るように、「\」をつけることでうまく回すことができました!! ありがとうございました。

回答No.1

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)} ); }; おせんするとか、してきありそうだけど。おしえて~

関連するQ&A