我正在统计字数,更具体地说,是为我的文本编辑器统计字数。不过,我这样做是为了让它也算韩语(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/