[JavaScript] 全角を2、半角を1と数えるコード
スポンサーリンク
JavaScriptで全角を2、半角を1と数える必要があったので調べてみたら、大量に参考になるページが出てきました。結構需要があるのですね。
html5のcanvas上にテキストを描画する際、テキストの長さを取得するにはmeasureText()
メソッドを使います。canvasを初めて使った時、このメソッドに気づかず、「全角を2、半角を1として数え、フォントサイズを掛けて長さを求めよう」などと考えたのですね。その時に必要になったわけですが、これで正しいwidthが分かるわけもなく。
それはそれとして、表題のコードは非常に有用で使い所も多いのでメモしておきます。コードはこちらを参考にさせていただきました。
var charcount = function (str) { 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; } var text = "これはTESTです。"; alert( charcount(text) );//16
やー、これは便利だ。ありがたいことです。
スポンサーリンク
JavaScriptカテゴリーの投稿
- [Gmaps.js] 地図をドラッグした後の中心座標を取得する
- [jQuery] 文字列が含まれているかどうかの判定
- 圧縮後のJavaScriptやHtmlを元に戻すWebサービス
- Google Code Prettify導入が超絶簡単になっていた
- [JavaScript] 指定範囲内の整数からランダムな値を得る
- [JavaScript] sort()メソッドによる配列の並び替え
- シンタックスハイライター「Google Code Prettify」のカスタマイズ
- [JavaScript] オブジェクトにプロパティを追加
- [JS] 正規表現の特殊文字を置換するJavaScript版preg_quote()
- [JS][jQuery] 要素の存在を確認する6通りのコードと実行速度