js计算短信输入的字符长度

概念:数据存储是以“字节”(Byte)为单位,数据传输大多是以“位”(bit,又名“比特”)为单位。手机短信的长度是由编码决定的,根据国际标准:如果发送纯英文字符,由于英文ASCII采用 7位编码,所以1120位的限额可以传送1120÷7=160个字符;如果发送纯汉字字符,每条短信最多发送1120位,合(1120÷8=140, 一个字节占8位)140字节的内容,每个汉字占用2个字节140/2=70个字符;一旦传送的字符中包含中文、日文、韩文等双字节字符,不论中文还是西文,不论全角还是半角,都必须采用
摘要由CSDN通过智能技术生成

需求:如图
在这里插入图片描述
默认显示:0/160个英文字符
开始输入后:
如果最后一个字符是英文,显示:已输入字符个数/剩余可输入的英文字符个数
如果最后一个字符是汉字,显示:已输入字符个数/剩余可输入的汉字字符个数

概念:数据存储是以“字节”(Byte)为单位,数据传输大多是以“位”(bit,又名“比特”)为单位。

手机短信的长度是由编码决定的,根据国际标准:

如果发送纯英文字符,由于英文ASCII采用 7位编码,所以1120位的限额可以传送1120÷7=160个字符;

如果发送纯汉字字符,每条短信最多发送1120位,合(1120÷8=140, 一个字节占8位)140字节的内容,每个汉字占用2个字节140/2=70个字符;

一旦传送的字符中包含中文、日文、韩文等双字节字符,不论中文还是西文,不论全角还是半角,都必须采用2个字节的8位编码,因此1120÷8÷2=70个字符,即最多传送70个字符。

简言之: 一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间;

1个汉字=16bit,1个英文字符=7bit;

即:如果全部输入中文,输入的字符长度不能超过70个汉字,如果全部输入英文,输入的字符长度不能超过160个英文;中英文混合的最大不能超过1120bit(160*7)。

规则:ASCII编码大致由三部分组成:

1、ASCII 打印字符:数字 32–126 分配给了能在键盘上找到的字符

2、ASCII 非打印控制字符:数字 0–31 分配给了控制字符,用于控制像打印机等一些外围设备。

3、扩展 ASCII 打印字符:扩展的 ASCII 字符满足了对更多字符的需求。扩展的 ASCII 包含 ASCII 中已有的 128 个字符,又增加了 128 个字符,总共是 256 个。

ASCII编码转换为Unicode编码十进位为(0~255)之间的数字,汉字转换为Unicode编码大于255

<div class="sms-footer" id="smsFooter">
	<div class="sms-input-content com-ilb">
        <!-- 用div标签代替input输入框,才可以使手机软键盘顶起输入框 -->
    	<div class="sms-input" contenteditable id="sendText" onKeyUp="sendKeyUp(this)">     	</div>
    </div>
    <div class="sms-send-btn com-ilb">
    	<div class="sms-btn-send" id="sendEvent
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值