JS判断字符串长度的5个方法(区分中文和英文)

作者:代码拾荒

时间:2026-10-27

浏览:547

本文介绍在JavaScript中计算字符串长度的5种方法,重点解决中英文字符长度不一致的问题。英文字符占1位,中文字符占2位。通过遍历charCodeAt值、正则替换双字节字符等方式,实现准确长度统计,适用于表单验证等场景。

文章目录

JS计算字符串长度方案

目标:测算字符串长度(英文字符计1位,中文字符计2位)

方案一:

代码示例:

String.prototype.gblen = function() {
var len = 0;
for (var i=0; i<this.length; i++) {
if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) {
len += 2;
} else {
len ++;
     }  
   }  
return len;
}

方案二:


代码示例:

function strlen(str){
var len = 0;
for (var i=0; i<str.length; i++) {
var c = str.charCodeAt(i);
//单字节加1
if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
len++;
     } 
else {
len+=2;
     } 
    } 
return len;
}

方案三:


代码示例:

var jmz = {};
jmz.GetLength = function(str) {
///<summary>获取字符串实际长度,中文2,英文1</summary>
///<param name="str">需计算长度的字符串</param>
var realLength = 0, len = str.length, charCode = -1;
for (var i = 0; i < len; i++) {
charCode = str.charCodeAt(i);
if (charCode >= 0 && charCode <= 128) realLength += 1;
else realLength += 2;
  }
return realLength;
};

方案四:


代码示例:

var l = str.length;
var blen = 0;
for(i=0; i<l; i++) {
if ((str.charCodeAt(i) & 0xff00) != 0) {
blen ++;
} 
blen ++;
}

方案五:


将双字节字符替换为两个单字节字符后计算长度


代码示例:

getBLen = function(str) {
if (str == null) return 0;
if (typeof str != "string"){
str += "";
  }
return str.replace(/[^\x00-\xff]/g,"01").length;
}

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章