JS方法 - 字符串处理函数封装汇总 (更新中...)

一、计算一段字符串的字节长度

字符串的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("继续努力加油!!耶!");

原文地址:https://www.cnblogs.com/padding1015/p/9825160.html

时间: 2024-08-08 13:09:41

JS方法 - 字符串处理函数封装汇总 (更新中...)的相关文章

Angular js开发的各种坑(持续更新中。。。)

Angular UI的Modal 在按照官方文档写的时候会报如下错误 var ModalDemoCtrl = function ($scope, $modal, $log) {   $scope.items = ['item1', 'item2', 'item3'];   $scope.open = function (size) {    var modalInstance = $modal.open({       templateUrl: 'myModalContent.html',   

js中将字符串作为函数名来调用的方法

方法:eval() eg: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>将字符串作为函数名调用函数</title> </head> <body> <span>指标:</span> <select id="zhibiao"> <option selected

js基本功能大全(函数封装)

js基本功能大全 1.javascript的数组API: //定义数组 var pageIds = new Array(); pageIds.push('A'); 数组长度 pageIds.length; //shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] b:1 //unshift:将参数添加到原数组开头,并返回数组的长度 var a = [1,2

Html2canvas - 项目中遇到的那些坑点汇总(更新中...)

水平居中的元素截图后向左跑偏 明明是水平居中的代码,截图出来的会偏左,结构是左图片右文字,有时候是图片自己跑到最左边,有时候是整体偏左一点点 这个问题也不是经常遇到,场景是父div元素text-align=center;内部两个子元素设为display:inline-block的模式.然后画图就会出现左边的div偏左靠或直接在左边的情况. 问题未解决,出现时也没研究因为啥,等有时间的时候就不出现了... 靠背景图露脸的dom们会有底线 截图时,如果有一个dom元素是用背景图填充的,里边没有任何结

js 替换字符串 replace函数运用

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title&

Ztree扩展方法汇总(更新中)

var treeObj = $.fn.zTree.getZTreeObj("tree_div"); //得到ztree对象 1.展开所有节点 treeObj.expandAll(true); 2.设置根节点展开 var treeObj = $.fn.zTree.getZTreeObj("tree_div"); var nodes = treeObj.getNodes(); for (var i = 0; i < nodes.length; i++) { //设

Ubuntu小点汇总,更新中...

转自:http://blog.csdn.net/zxz_tsgx/article/details/39713627 昨天重装了Ubuntu14.04 64位版,又被一些基础操作/设置给搞怕了,以前安装的时候没有记录下来,一段时间后就忘了,然后继续捣鼓一遍,好不烦恼,所以这次就尽量记录下来; 安装输入法 ==!这个整了半天没装成sogou,使用谷歌拼音,当然,首先是打开language support进行更新,并安装Chinese(Simplfied)语言支持(我装的是E文版系统),并选择系统输入

&#8203; Linux 命令汇总 更新中

 Linux 命令汇总  1.保存新建分区信息至 /etc/fstab fstb :echo /dev/xvdb1 /mnt ext3 defaults 0 0 >> /etc/fstab 2.%s/old/new/g 用字符串 new 替换正文中所有出现的字符串 old 3.ssh生产秘钥工具 ssh-keygen -t rsa 默认密码保存文件:./.ssh/authorized_keys 默认生成的 私钥文件为: id_rsa     . 公钥为 id_rsa.pub 4.查找命令 ch

Mysql 常用汇总 更新中

mysql 密码重置  先停止mysqld # mysqld_safe --skip-grant-tables & # use mysql; # update user set password=password('yes') where user="root";    ---将root密码设置为yes # flush privileges; # exit # ps -ef | grep mysql    //如果发现安全模式还没有关掉需要 kill -9  干掉 # serv