2013-05-25 1 views
0

Я хочу подсчитать типизированные байты символов для приложения sms. Если ASCII печатается, он подсчитывает 1 байт, а для не ASCII - 2 байта. Если общий байтовый байт составляет более 80 байт, сценарий должен предупредить («Вы достигли более 80 байтов»), после чего он должен вырезать с конца, пока он не станет меньше 80 байт. Однако функция cutBylen(), похоже, не работает в этом скрипте. Он просто предупреждает, но не режет строку. Может ли кто-нибудь сказать мне, где проблема? Большое спасибо.Функция javascript не работает в jQuery

   <script> 
        function countBytes(str) { 
         var count = 0; 
         for (var i = 0; i < str.length; i++) { 
          var onechar = str.charAt(i); 
          if (str.charCodeAt(i) >= 128) { 
           count += 2; 
          } else if (onechar != '\r') { 
           count++; 
          } 
         } 
         return count; 
        } 
       </script> 
       <script> 
        function cutByLen(str, byteLen) { 
         var tmpStr = str; 
         while (countBytes(tmpStr) > byteLen) { 
          var len = tmpStr.length; 
          tmpStr = tmpStr.substr(0, len - 1); 
         } 
         return tmpStr; 
        } 
       </script> 
       <script> 
        $(document).ready(function() { 

         $("#smstext1").keyup(function(){ 
          var text = $(this).val(); 
          var byteLen = countBytes(text); 
          var len = text.length; 

          if (byteLen >80){ 
           alert('You have reached over 80bytes'); 

           var tmpStr = cutByLen(text, byteLen); 

           $(this).val(tmpStr);  

          } 


         }); 
        }); 
       </script> 

ответ

2

Вы

var tmpStr = cutByLen(text, byteLen); 

где byteLen является длина текста так режет строку, если это больше, чем он сам, что, очевидно, ничего не делает. Возможно, вы имели в виду

var tmpStr = cutByLen(text, 80); 
+0

Отлично! Это действительно сработало. Во время отладки я очень расстроился и ничего не нашел. Я знал, что это должно быть очень просто. Еще раз спасибо, чувак :). – xnote

Смежные вопросы