- ベストアンサー
半角と全角の文字数について
str=new String("教えてgoo"); s=str.length; このようにすると、「s」の中には「6」という数字が代入されるのですが、 全角を2文字として計算するにはどうすればいいのでしょうか。 「s」の中には「9」が入るようにしたいんです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
String.prototype.mlength=function(){ var len=0; for(var i=0;i<this.length;i++){ var code=this.charCodeAt(i); if(code>255) len++; len++ } return len; } var str=new String("教えてgoo"); var s=str.length; alert(s); //6 var sm=str.mlength(); alert(sm);//9
その他の回答 (1)
- arakororin
- ベストアンサー率39% (80/205)
length プロパティは、文字列の中に日本語(2バイト文字)を含んだ場合、古いブラウザでは日本語 1 文字を 2 と数えますが、Internet Explorer 4.0 以降、Netscape Communicator 4.06(XXX)以降では日本語 1 文字を 1 と数えるので注意が必要です。日本語を 2 として数えるには次のような関数を用いてください。 function jstrlen(str, len, i) { len = 0; str = escape(str); for (i = 0; i < str.length; i++, len++) { if (str.charAt(i) == "%") { if (str.charAt(++i) == "u") { i += 3; len++; } i++; } } return len; }
お礼
早い応答に感謝です、 ありがとうございました。
お礼
わかりやすく説明してくれて助かりました。 ありがとうございました。