summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authordrry <drry@drry.jp>2008-07-08 05:04:18 -0400
committerdrry <drry@drry.jp>2008-07-08 05:04:18 -0400
commit1311305e233317672a41d001f22d6be21473e342 (patch)
tree674e06ee10aafa9e48f9a508330aaa58125c5a81 /js
parentbc021da780a7172aa4ad766c19a4ae4e52fb927f (diff)
multibyte counter
#00179 darcs-hash:20080708090418-57001-e5c0f9e19666fb25a7fcb2e92e89ef83d159b5ab.gz
Diffstat (limited to 'js')
-rw-r--r--js/util.js18
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();
}
});