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;
}
### JavaScript 中获取字符串长度的方法 在 JavaScript 中,可以通过 `String` 对象的内置属性 `.length` 来获取字符串长度。该方法简单高效,适用于大多数场景。 以下是具体的实现方式: #### 使用 `.length` 属性 `.length` 是一个只读属性,用于返回字符串中的 Unicode 编码单元数量。对于简单的 ASCII 字符(如英文字母、数字),其计数通常是准确的。但对于某些特殊字符(如表情符号或多字节字符),可能会存在偏差[^1]。 ```javascript const str = "Hello, world!"; console.log(str.length); // 输出 13 ``` 如果需要处理多字节字符(如中文或其他复杂字符集),可以采用更复杂的逻辑来计算真实长度。例如,在引用[3]中提供了一种函数 `strLength` 的实现,它通过检测字符编码是否超过 255 来调整最终的结果[^3]。 #### 处理特殊情况下的字符串长度字符串包含非标准字符(如表情符号或扩展字符集合)时,单靠 `.length` 可能无法满足需。此时可借助正则表达式或其他库工具进行精确统计。例如: ```javascript function getTrueLength(str) { let count = 0; for (let i = 0; i < str.length; i++) { if (/[\u{0}-\u{FFFF}]/.test(str[i])) { count += 1; // 单个字符 } else { count += 2; // 超过基本平面的字符(如表情) } } return count; } const specialStr = "😊你好"; console.log(getTrueLength(specialStr)); // 输出 4 ``` 上述代码片段展示了如何针对不同类型的字符分别计数,并得出更加精准的字符串长度[^2]。 --- ### 总结 - 基础情况下可以直接使用 `.length` 属性快速获得字符串长度。 - 如果涉及复杂字符集,则需额外编写算法以确保准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值