]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
multibyte counter
authordrry <drry@drry.jp>
Tue, 8 Jul 2008 09:04:18 +0000 (05:04 -0400)
committerdrry <drry@drry.jp>
Tue, 8 Jul 2008 09:04:18 +0000 (05:04 -0400)
#00179

darcs-hash:20080708090418-57001-e5c0f9e19666fb25a7fcb2e92e89ef83d159b5ab.gz

js/util.js

index 828915438a1f84078e3c70d2f8a1828c0fc791f7..603014dda8448a9eb33790c7b46a3ca483ba8a02 100644 (file)
@@ -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();
         }
 });