一、计算一段字符串的字节长度
字符串的charCodeAt()方法,
可返回字符串固定位置的字符的Unicode编码,这个返回值是0-65535之间的整数,如果值<=255时为英文,反之为中文。
而,中文的字节长度为2,英文的字节长度为1。
依照这个规律封装如下:
1 function getStrBytes(str){ 2 ??????str = str.toString(); 3 ??????var strLen = 0; 4 ??????for (let s = 0; s < str.length; s++) { 5 ????????if(str.charCodeAt(s) >= 255){ 6 ??????????// 中文,字节为2. 7 ??????????strLen += 2; 8 ????????}else{ 9 ??????????// 非中文,字节为1.10 ??????????strLen += 1;11 ????????}12 ??????}13 ??????return strLen;14 ????}
简化写法:(思路是,初始化时,默认就把字符串的长度等于字节长度。遇到中文的时候,字节长度+1)
1 function getStrBytes(str){ 2 ??????str = str.toString(); 3 ??????var strLen, ?4 ??????????count; 5 ??????????strLen = count= str.length; 6 ??????for (let s = 0; s < strLen; s++) { 7 ????????if(str.charCodeAt(s) >= 255) 8 ??????????count ++; 9 ??????}10 ??????return count;11 }
调用方法:
getStrBytes("gjf32425");
二、计算输入文本框的字符个数
这个功能很常见,在评论区内一般会限制输入文字个数,
多用于textarea右下角的数字提示器功能,提示用户输入的文字个数。
利用上边计算出的字符串的字节,除以2取整就可以粗略当做用户的字符个数。
1 function getStrNum(str){2 ???return Math.ceil(getStrBytes(str)/2);3 }
调用:
getStrNum("继续努力加油!!耶!");
JS方法 - 字符串处理函数封装汇总 (更新中...)
原文地址:https://www.cnblogs.com/padding1015/p/9825160.html