JavaScript获取字符串实际长度(包含中英文)

日常开发过程中,经常会遇到需要计算字符串的实际长度(包含中英文),今天整理下我平时使用的方法:

方法一:使用charCodeAt()来判断字符编码

charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script>
    /**
     * 获取字符串实际长度(包含中英文)
     * @param str  要获得长度的字符串
     */
    var zfc = {};
    zfc.getStringLength = function (str) {
      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;
    };
    console.log(zfc.getStringLength('aaa获取字符sfdsf串实际长度(包含中英文)sdfdsf'))
  </script>
</head>
<body>

</body>
</html>

方法二: 简化版使用charCodeAt()来判断字符编码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script>
    /**
     * 获取字符串实际长度(包含中英文)
     * @param str  要获得长度的字符串
     */
    var zfc = {};
    zfc.getStringLength = function (str) {
      var len = str.length;
      var realLength = 0;
      for (var i = 0; i < len; i++) {
        if ((str.charCodeAt(i) & 0xff00) != 0) {
          realLength++;
        }
        realLength++;
      }
      return realLength;
    };
    console.log(zfc.getStringLength('aaa获取字符sfdsf串实际长度(包含中英文)sdfdsf'))
  </script>
</head>
<body>

</body>
</html>

方法三: 先把中文替换成两个字节的英文,再计算长度(推荐使用)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script>
    /**
     * 获取字符串实际长度(包含中英文)
     * @param str  要获得长度的字符串
     */
    var zfc = {};
    zfc.getStringLength = function (str) {
      return str.replace(/[\u0391-\uFFE5]/g, 'aa').length;
    };
    console.log(zfc.getStringLength('aaa获取字符sfdsf串实际长度(包含中英文)sdfdsf'))
  </script>
</head>
<body>

</body>
</html>

到此这篇关于JavaScript获取字符串实际长度的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • JavaScript实现的GBK、UTF8字符串实际长度计算函数

    大家都知道,在JS中字符串的长度不分中英文字符, 每一个字符都算一个长度,这跟PHP里的strlen()函数就不太一样.PHP里的strlen()函数根据字符集把GBK的中文每个2累加,把UTF-8的中文字符每个按3累加. 有些童鞋可能要问了,为什么要计算实际长度? 主要是为了匹配数据库的长度范围内,比如GBK的数据库某字段是varchar(10),那么就相当于5个汉字长度,一个汉字等于两个字母长度.如果是UTF8的数据库则是每个汉字长度为3. 知道了以上原理以后,我们就可以算出一个字符串的实际

  • JS获取字符串实际长度(包含汉字)的简单方法

    方法一: 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++) { cha

  • 检测含有中文字符串的实际长度

    我们在实际过程中要经常去检测含有中文字符串的实际长度, 因为中文字符,和英文字符在一起的话.判断起来你麻烦点. 原理跟在asp中的一样.逐个去判断.是中文加2英文加1. 复制代码 代码如下: ASCIIEncoding n = new ASCIIEncoding(); byte[] b = n.GetBytes(str); int l = 0; // l 为字符串之实际长度 for (int i=0;i <= b.Length-1;i++) { if (b[i] ==63) //判断是否为汉字或

  • 获取中文字符串的实际长度代码

    JS中默认中文字符长度和其它字符长度计算方法是一样的,但某些情况下我们需要获取中文字符串的实际长度,代码如下: 复制代码 代码如下: function strLength(str) { var realLength = 0, len = str.length, charCode = -1; for (var i = 0; i < len; i++) { charCode = str.charCodeAt(i); if (charCode >= 0 && charCode <

  • 截取实际长度字符串,并用空格替换

    function cutstr(thestr,strlen)dim l,t,cl=len(thestr)t=0for dxy=1 to lc=Abs(asc(Mid(thestr,dxy,1)))if c>255 thent=t+2elset=t+1end ifif t>=strlen thenthev=left(thestr,dxy)exit forelsebu=strlen-tfor bui=1 to bustrbu=" "strbuall=strbuall&s

  • JavaScript获取字符串实际长度(包含中英文)

    日常开发过程中,经常会遇到需要计算字符串的实际长度(包含中英文),今天整理下我平时使用的方法: 方法一:使用charCodeAt()来判断字符编码 charCodeAt() 方法可返回指定位置的字符的 Unicode 编码.这个返回值是 0 - 65535 之间的整数. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>

  • 如何利用JavaScript获取字符串中重复次数最多的字符

    目录 题目 分析 使用对象 解题思路: 代码实现如下: 分析: 数组&指针 解题思路: 代码实现如下: 分析: 总结 想要保持自己的技术活力,最有效的手段就是通过不断地输入来提供足够的养分.我们也不必刻意追求高深的或者新鲜的知识点,通过对一个基础问题的全方位多维度解析,同样也会收获不小. 题目 假设有这么一道题目:请获取字符串 "bianchengsanmei,xuexiyouqudezhishi,jieshiyouqudepengyou,suzaoyouqudelinghun.&quo

  • javascript 获取所有id中包含某关键字的控件的实现代码

    //获取某容器控件中id包含某字符串的控件id列表 //参数:容器控件.要查找的控件的id关键字.要查找的控件的标签名称 //返回值:查找到的控件id列表字符串,以逗号分割. 复制代码 代码如下: function GetIdListBySubKey(container,subKey,TagName) { var idList = ""; for(var i = 0; i < container.childNodes.length;i++) { if(container.chil

  • JS版获取字符串真实长度和取固定长度的字符串函数

    自动将双字节字符长度计算为2,取字符时也按照单字节的长度取,如2即取1个汉字或两个字母,1取一个汉字或字母. // 得到字符串的真实长度(双字节换算为两个单字节) function getStrActualLen(sChars) { return sChars.replace(/[^\x00-\xff]/g,"xx").length; } // 截取固定长度子字符串 sSource为字符串iLen为长度 function getInterceptedStr(sSource, iLen)

  • Javascript 获取字符串字节数的多种方法

    方法有很多,举两种: 第一种:(通过String对象的charCodeAt方法) 复制代码 代码如下: String.prototype.getBytesLength = function() { var length = 0; for(i = 0;i < this.length; i++) { iCode = this.charCodeAt(i); if((iCode >= 0 && iCode <= 255) || (iCode >= 0xff61 &&

  • 运用El表达式截取字符串/获取list的长度实例

    ${fn:substring(wjcd.lrsj, 0, 16)} 使用functions函数来获取list的长度 ${fn:length(list)} <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 函数名 函数说明 使用举例 fn:contains 判断字符串是否包含另外一个字符串 <c:if test="${fn:contains(name

  • PowerShell获取字符串长度的方法

    使用PowerShell可以很方便的计算字符串的长度.PowerShell是继承于Microsoft .NET Framework的,所以在.NET里面怎么获取到字符串的长度,在PowerShell中可以使用相同的方法. 我们知道在.NET中,可以使用String.Length方法来获取字符串的长度,让我们看看PowerShell中怎么样依葫芦画瓢. 复制代码 代码如下: $string = "1234567"; Write-Host $string.Length; #输出为7 如果你

  • js计算字符串长度包含的中文是utf8格式

    方法一: 复制代码 代码如下: function byteLength(str) { var byteLen = 0, len = str.length; if( !str ) return 0; for( var i=0; i<len; i++ )  byteLen += str.charCodeAt(i) > 255 ? 2 : 1; return byteLen;} 说明:byteLength(str)参数:string str: 要计算字节长度的字符串(非ASCII的字符算2字节) 方

  • Shell获取字符串长度的多种方法总结

    前言 我们在日常工作中,对于求字符串操作在shell脚本中很常用,实现的方法有很多种,下面就来给大家归纳.汇总了求字符串的几种可能方法,话不多说了,来一起看看详细的介绍吧. 方法如下: [方法一]:利用${#str}来获取字符串的长度 [方法二]:利用awk的length方法 备注: 1) 最好用{}来放置变量 2) 也可以用length($0)来统计文件中每行的长度 [方法三]:利用awk的NF项来获取字符串长度 备注: -F为分隔符,NF为域的个数,即单行字符串的长度 [方法四]:利用wc的

随机推荐