diff options
author | drry <drry@drry.jp> | 2008-07-08 05:04:18 -0400 |
---|---|---|
committer | drry <drry@drry.jp> | 2008-07-08 05:04:18 -0400 |
commit | 1311305e233317672a41d001f22d6be21473e342 (patch) | |
tree | 674e06ee10aafa9e48f9a508330aaa58125c5a81 | |
parent | bc021da780a7172aa4ad766c19a4ae4e52fb927f (diff) |
multibyte counter
#00179
darcs-hash:20080708090418-57001-e5c0f9e19666fb25a7fcb2e92e89ef83d159b5ab.gz
-rw-r--r-- | js/util.js | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/js/util.js b/js/util.js index 828915438..603014dda 100644 --- a/js/util.js +++ b/js/util.js @@ -2,22 +2,26 @@ $(document).ready(function(){ // count character on keyup function counter(){ var maxLength = 140; - var currentLength = $("#status_textarea").val().length; - var remaining = 140 - currentLength; - var counter = $("#counter"); + var currentLength = $("#status_textarea").val() + .replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "drry") + .replace(/[\u0800-\uFFFF]/g, "drr") + .replace(/[\u0080-\u07FF]/g, "dr") + .length; + var remaining = maxLength - currentLength; + var counter = $("#counter"); counter.text(remaining); - if(remaining <= 0) { + if (remaining <= 0) { counter.attr("class", "toomuch"); - } else { + } else { counter.attr("class", ""); - } + } } if ($("#status_textarea").length) { $("#status_textarea").bind("keyup", counter); // run once in case there's something in there - counter(); + counter(); } }); |