アプリ版:「スタンプのみでお礼する」機能のリリースについて

JavaScriptで半角記号を全角記号に変換するプログラムを書いています。
内容としては、

!”#$%&’()*+,-./:;<=>?@[¥]^_`{|}~

上記の半角記号があったら全角に変換したいのです。
’や”などがあることで、うまく配列に入れて回すことができません。
どうしたら良いでしょうか?

A 回答 (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;
}
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/11/06 16:59

ごめんなさい。

かいとうになってませんでした。
["'", '"', ~]
とか
var str = '!"#$\'()'.split('');
var str = "!\"#$'()".split('');

「\」が、きも。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/11/06 16:58

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)} );
};

おせんするとか、してきありそうだけど。おしえて~
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!