专栏首页前端说吧JS方法 - 字符串处理函数封装汇总 (更新中...)

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • sublime--package control的配置与插件安装

    xing.org1^
  • vue-echarts在vue中的使用

    Vue-ECharts 默认在 webpack 环境下会引入未编译的源码版本,Vue CLI 创建项目可能会遇到默认配置把 node_modules 中的文件排...

    xing.org1^
  • JS-提取字符串—>>普通方法VS正则表达式

    xing.org1^
  • 括号生成

    数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。

    WindrunnerMax
  • 编译libjson_7.6.1

    编译libjson_7.6.1可能会遇到如下的问题: makefile:180: Extraneous text after `else' directive...

    一见
  • Reconstructing Position From Depth

    逍遥剑客
  • java字符串对象的存储机制

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/...

    用户2965908
  • Shiro系列视频 - 8. shiro使用ini进行授权

    这是关于Shiro的原创系列视频,目前已经在官网以及一些自媒体平台发布,公众号也开始同步更新,在线播放采用腾讯视频,削微模糊 Shiro系列视频 - 8. sh...

    风间影月
  • 如何在GPU上设计高性能的神经网络

    gpu对于机器学习是必不可少的。可以通过AWS或谷歌cloud轻松地启动这些机器的集群。NVIDIA拥有业内领先的GPU,其张量核心为 V100和 A100加速...

    deephub
  • 在R里面对三元一次方程求解

    就可以求出唯一解:X= -984.7667 Y= -61.2 Z= 327.5667 看起来确实有点难度哦!

    生信技能树

扫码关注云+社区

领取腾讯云代金券