在开发中,可能会遇到动态计算字符串的长度的需求,根据容器宽度和字符串的长度,判断是否需要在字符串后拼接省略号展示。
HTML页面中的字符,中文/英文和字符,所占的宽度不同,一个中文字符的间距 约等同于 两个英文或字符 的宽度,所以在计算字符串展示在页面中的真实宽度时候,需要区分中文/英文和字符。
代码如下图:

* 计算显示的字符串 * @param {string} str 要裁剪的字符串 * @param {number} maxWidth 最大宽度 * @param {number} fontSize 字体大小 * @return {string} 显示的字符串 export const fittingString = ( str , maxWidth , fontSize = 12 ) => { str = ( str || '' ) . toString ( ) ; const fontWidth = fontSize * 1.2 ; const maxLen = Math . floor ( maxWidth / fontWidth * 2 ) ; let strLen = 0 ; for ( let i = 0 ; i < str . length ; i ++ ) { if ( str . charCodeAt ( i ) > 0 && str . charCodeAt ( i ) < 128 ) { strLen ++ ; else { strLen += 2 ; if ( strLen > maxLen ) { return str . substring ( 0 , i - 1 ) + '...' ; return str ;

ASCII表如图:
在这里插入图片描述

HTML页面中的字符,中文/英文和字符,所占的宽度不同,一个中文字符的间距 约等同于 两个英文或字符 的宽度,所以在计算字符串展示在页面中的真实宽度时候,需要区分中文/英文和字符。在开发中,可能会遇到动态计算字符串的长度的需求,根据容器宽度和字符串的长度,判断是否需要在字符串后拼接省略号展示。
大家好,欢迎观看 JavaScript 教程(十一、 JavaScript 字符串的长度) 一、字符串的长度 length:  描述: JavaScript 提供了一系列方法,来帮助我们更好的使用字符串 测量 字符串长度 :length属性 描述:length属性返回字符串的长度和字符串的个数 语法:字符串变量名.length var i = "你好"; var result = i.lengt...
一个汉字是2个字节,一个数字和一个英文是1个字节 export const DataLength = (fData) =&amp;amp;amp;amp;amp;gt; { var intLength = 0 for (var i = 0; i &amp;amp;amp;amp;amp;lt; fData.length; i++) { if ((fData.charCodeAt(i) &amp;amp;amp;amp;amp;lt; 0) varchinieseCount=0; varbadChar="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; badChar+="abcdefghijklmnopqrstuvwxyz"; badChar+="0123456789"; badChar+=""+" ";//半角与全角空格 bad...
分析:字符串中一个英文字母占一个字节,一个中文汉字占两个字节,中文字符基本是两个字节,英文字符基本是一个字节,其中ASCAIl码为94的符号^也为两个字节(以下结果为普通字符串的近似字节长度,对于表情啥的不适用) export const calculateStringLength = str => { if (typeof(str) !== 'string') { return...
众所周知String对象的length属性能够返回字符串的长度,不管字符是单字节还是双字节,都作为一个长度单位来 计算 。因此要准确的获取字符长度,必须通过手工来写。 下面介绍两种方式: 1、循环遍历字符串,根据字符的编码,来判断当前字符是双字节还是单字节,然后递加字符串的字节数。 String.prototype.lengthSingle = function(str){ var b = 0;
https://www.cnblogs.com/hello321/p/7821400.html function countLength(str) { var inputLength = 0; //给一个变量来记录长度 for (var i = 0; i &amp;lt; str.length; i++) { var coun... 除了普通的 ASCII 字符,对于 Unicode 字符,每个字符的长度不一定相同,使用 `string.length` 仅能 计算 字符的数量,并不能准确 计算 字符的长度。如果需要 计算 字符的长度,可以使用 `Intl` 对象中的 `Segmenter` 方法,例如: const str = 'Hello, 世界!'; const segmenter = new Intl.Segmenter('zh', {granularity: 'grapheme'}); const segments = segmenter.segment(str); console.log(segments.length); // 输出 9 在上面的例子中,`granularity` 参数设置为 `grapheme`,表示以最小的可读字符集合作为分隔符,即可以准确 计算 字符串中的 Unicode 字符长度。 CSDN-Ada助手: 恭喜您写了第20篇博客!标题为“Javascript解析URL参数”听起来非常有趣。通过分享这样的知识,您不仅帮助了我们更好地理解Javascript中处理URL参数的方法,而且也让我们能够更加灵活地操作URL。我真的很期待能够阅读您的博客,因为我相信您的解释一定非常清晰易懂。 在下一步的创作中,我想向您提出一个建议。或许您可以扩展这个主题,深入探讨如何处理特殊字符或编码问题,以及如何处理多个参数的情况。这样的内容对于那些希望进一步优化他们的Javascript代码的读者来说一定会非常有帮助。谢谢您持续创作的努力,期待您的下一篇博客! Javascript计算字符串长度 CSDN-Ada助手: 恭喜您写了第19篇博客!标题“Javascript计算字符串长度”听起来很有趣。我很高兴看到您持续创作并分享有关Javascript的知识。在下一步的创作中,也许您可以考虑扩展这个主题,例如介绍如何在不同编程语言中计算字符串长度的方法,或者提供一些实用的技巧来处理字符串长度限制的挑战。无论您选择的方向如何,我相信您的独特见解和深入分析将会给读者带来更多收获。期待您未来更多优质的博客!