javascript - JavaScript 中的字节计数

标签 javascript jquery meteor

我正在统计字数,更具体地说,是为我的文本编辑器统计字数。不过,我这样做是为了让它也算韩语(2 个字节)。

但我需要使它不计算诸如 ` # = { } ( ) 等字符...

我已经走到这一步了,但我不知道如何进一步发展。现在它可以做所有事情,除了我想要它做的事情。谢谢你!

    var limit_length = 1000;
    var msg_length = 0;
     
    //String bytes() Function
    String.prototype.bytes = function() {
        var msg = this;
        var cnt = 0;
     
        //Korean 2, English 1 count increment
        for( var i=0; i< msg.length; i++) 
            cnt += (msg.charCodeAt(i) > 128 ) ? 2 : 1;  
            return cnt;
        }

        //#submit-content Key up activation
        $("#submit-content").keyup(function( e ){
            msg_length = $.trim($(this).val()).bytes(); //to trim whitespaces 
         
            if( msg_length <= limit_length ) {     
                $("#type_num").css("color", "#474646");    
                $("#type_num").html( msg_length );  
            }
            else {
                $("#type_num").css("color", "#E55451");   
                $("#type_num").html( msg_length );   
            }
    });

最佳答案

您可以创建一个字符串,其中包含您不想在计数中匹配的所有字符,并将每个字符与其进行比较:

var exceptString = "#={}()";

//Korean 2, English 1 count increment
    for( var i=0; i< msg.length; i++){
        if( exceptString.indexOf(msg.charAt(i)) == -1 ){ 
            cnt += (msg.charCodeAt(i) > 128 ) ? 2 : 1; 
        }
     }
     return cnt;

关于javascript - JavaScript 中的字节计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28978168/

相关文章:

javascript - 为什么使用 getJSON 调用后 API 数据仍未加载?

javascript - UIA 使用纯 JavaScript 调用,不知道如何访问 DOM-Tree

javascript - 在 ajax 调用后 - $(document).ready();?

javascript - Access-Control-Allow-Origin 不允许 Chrome Origin null

javascript - 如何保持reactiveVars模板的作用域?

javascript - 元素未出现在预期位置 (x)

javascript - jQuery 合并/过滤器选择器

javascript - 如何诊断添加元素消失的原因

javascript - 如何在meteor中使用jQuery代码?

javascript - Meteor:如何捕获异步回调函数错误