博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
判断当前字符是单字节还是双字节
阅读量:6035 次
发布时间:2019-06-20

本文共 1734 字,大约阅读时间需要 5 分钟。

hot3.png

//判断当前字符是单字节还是双字节

1、判断当前字符编码大于255

String.prototype.lengthB = function(){

var b = 0;

var l = this.length;

if(l){

for (var i = 0; i < l; i++) {

if(this.charCodeAt(i)>255){

console.log("双字节");

b+=2;

}else{

console.log("单字节");

b++;

}

};

return b;

}else{

return 0;

}

}

var s = "我";

console.log(s.lengthB());  //2

2、如果字符转义序列大于4位,则说明是双字节

String.prototype.lengthB = function(){

var b = 0;

var l = this.length;

if(l){

for (var i = 0; i < l; i++) {

var c = this.charAt(i);

if(escape(c).length>4){

b+=2;

}else if(c != "\r"){

b++;

}

};

return b;

}else{

return 0;

}

}

var s = "123";

console.log(s.lengthB());  //3

3、使用正则表达式,匹配单字节字符

String.prototype.lengthB = function(){

var b = 0;

var l = this.length;

if(l){

for (var i = 0; i < l; i++) {

var c = this.charAt(i);

if(/^[\u0000 - \u00ff]$/.test(c)){

b++;

}else{

b+=2;

}

};

return b;

}else{

return 0;

}

}

var s = "我我";

console.log(s.lengthB()); //4

应用

   /*************************************************************************

        * DESC:主要是用来判断当前输入的字节数,以便做到限制输入标题的长度功能

        **************************************************************************/

        var matchWords;

        function notifyTextLength() {

            var inputNum = document.getElementById("txtTitle").value.replace(/[^\x00-\xff]/g, "**").length; //得到输入的字节数

            if (inputNum <= 200) {

                matchWords = document.getElementById("txtTitle").value.length;

                document.getElementById("inputedWord").innerHTML = inputNum + "字节," + matchWords + "字符";

                document.getElementById("inputtingWord").innerHTML = (200 - inputNum) + "字母,"+(Math.round(((200-inputNum)/2)-0.5))+"汉字";

            }

            if (inputNum > 200) {

                    document.getElementById("txtTitle").value = document.getElementById("txtTitle").value.substring(0, matchWords);  //如果超过200字节,就截取到200字节

                }

               

        }

转载于:https://my.oschina.net/u/1579617/blog/515899

你可能感兴趣的文章
jstack dump日志文件详解
查看>>
[Ruby] 基础知识
查看>>
Codeforces Round #426 (Div. 2)The Meaningless Game【数学题】【水题】
查看>>
centos 配置sudo记录日志
查看>>
C语言截取字符串或反转字符串
查看>>
Python操作MySQL数据库的三种方法
查看>>
我的友情链接
查看>>
记一次kafka故障
查看>>
APUE读书笔记-10信号-19sleep函数
查看>>
CentOS 6安装配置LDAP
查看>>
Linux双网卡绑定bond详解
查看>>
编译安装mod_jk on centOS
查看>>
KAFKA日志管理
查看>>
MySQL主从配置
查看>>
vsphere通过模板批量部署虚拟机
查看>>
gulp 和 Browsersync 的联合使用
查看>>
我的友情链接
查看>>
如何使用PHP计算上一个月的今天
查看>>
关于无法标识/锁定数据库文件
查看>>
在线office文档编辑NTKO使用心得
查看>>