`
a47313198
  • 浏览: 16456 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

转载:javascript 中英文字符长度和截断处理

    博客分类:
  • web
阅读更多
因:javascript中的String类自带的length属性 和 substr()方法虽然能判断和截取出字符个数,但是对字节个数却没有处理的方法(众所周知,中文字符占两个字节,英文只占一个)

果:中英文字符在页面上的占位空间存在差异。中文的web开发人员不能一刀切,对中英文都截取同样长度的字符数。

网上大致有两种方法处理中英文字符。一种是把中文字符escape了,然后计算字节长度。一种是用正则表达式把中文字符转换2个字节的符号,然后计算长度

推荐第二种方法,简单明了,速度快,效率高。

按照第二种方法,对javascript 的 String类型做以下扩展:

一.String.len() 方法,计算字符串字节个数:
1 String.prototype.len=function()        
2 {                
3 return this.replace(/[^\x00-\xff]/g,"rr").length;         
4 }

二.String.sub(endindex) 方法,从0开始截取endindex长度的字节数。
1
2 String.prototype.sub = function(n)
3 {   
4 var r = /[^\x00-\xff]/g;   
5 if(this.replace(r, "mm").length <= n) return this;  
6 // n = n - 3;   
7 var m = Math.floor(n/2);   
8 for(var i=m; i<this.length; i++) {   
9 if(this.substr(0, i).replace(r, "mm").length>=n) {   
10   return this.substr(0, i) ; }   
11 } return this;  
12 }; 

使用方法:最好写成公用脚本,放到所有脚本前面,调用如下:

1 var a='tom正在测试中英文字符处理';
2 alert(a.len());
3 alert(a.sub(5));
分享到:
评论

相关推荐

    js中英文混合的字符串换行

    本文将详细介绍如何使用 JavaScript 对包含中英文字符的字符串进行智能换行处理。 #### 一、需求分析 根据题目描述,我们需要实现一个功能:对包含中文、英文及特殊符号的字符串进行处理,使得当字符串过长时能够...

    js截取固定长度的中英文字符的简单实例

    在JavaScript中,处理中英文混合的字符串截取是一项常见的任务,尤其在网页开发中,比如显示摘要、控制输入长度等场景。由于JavaScript的内置方法`String.prototype.length`只能计算Unicode字符的数量,对于中文字符...

    程序天下:JavaScript实例自学手册

    14.9 获取字符串型数组下标的数组长度 14.10 用JavaScript实现数组排序 14.11 数字千分位函数 14.12 读写Cookie的函数 14.13 获取JavaScript函数中的所有参数 14.14 奇偶数的判断 14.15 在JavaScript运行VBScript...

    《程序天下:JavaScript实例自学手册》光盘源码

    14.9 获取字符串型数组下标的数组长度 14.10 用JavaScript实现数组排序 14.11 数字千分位函数 14.12 读写Cookie的函数 14.13 获取JavaScript函数中的所有参数 14.14 奇偶数的判断 14.15 在JavaScript运行VBScript...

    JS按字节截取字符长度实例

    对于中文字符,由于其编码方式与英文字符不同,一个中文字符在UTF-8编码下会占用3个字节,而在GBK编码下会占用2个字节,所以直接按字符数截取字符串并不适用于中文等宽字节编码的场景。本文所讨论的字节长度截取是...

    js限制textarea每行输入字符串长度的代码.docx

    在JavaScript中,对`textarea`元素进行输入字符串长度限制是一个常见的需求,特别是在处理用户输入时,需要确保数据格式的正确性。在HTML中,`textarea`控件不像`input[type="text"]`那样可以直接通过`maxlength`...

    js中根据字数截取字符串,不能截断url.docx

    ### JavaScript 中根据字数截取字符串且不截断 URL 的实现 #### 背景与需求分析 在处理大量文本数据时,我们经常会遇到需要截取字符串的需求,尤其是在前端开发中,为了美观或是性能考虑,我们需要对显示的文本...

    计算字符串宽度

    这个宽度不同于字符串的字符数量或长度,因为不同字符的宽度可能不同,比如英文的字母和数字通常比中文字符窄,而某些特殊字符可能更宽。 字符串宽度的计算涉及以下几个关键知识点: 1. **字体**:字体决定了字符...

    js字符限制(字符截取) 一个中文汉字算两个字符

    在JavaScript编程中,一个中文汉字往往被视为两个字节(byte),而英文字符则通常只占用一个字节。 根据给定文件内容,我们可以了解到有关js字符限制和字符截取方面的相关知识点。从文件中的核心js代码可以看出,...

    Js自动截取字符串长度,添加省略号(……)的实现方法

    总之,JavaScript中的字符串截取和处理是一项常见的任务,通过`cutString`函数,我们可以有效地控制字符串长度并添加省略号,以适应各种界面显示的需求。在实际应用中,我们可以根据具体需求调整和优化这个函数,以...

    限制textbox或textarea输入字符长度的JS代码

    综上所述,通过这段代码,我们可以实现一种既考虑了中英文字符编码差异,又能兼顾用户输入体验的字符长度限制方法。这种方法可以广泛应用于需要对用户输入长度进行限制的网页元素中,保证数据的有效性和前端界面的...

    stringMaxLength

    “get string Max Length”这个主题涵盖了编程中获取和处理字符串长度的基本知识,涉及到不同编程语言的实现方式、字符串操作以及在实际应用中的考量。理解这些知识对于编写高效、健壮的代码至关重要。

    js form表单input框限制20个字符,10个汉字代码实例.docx

    1. **字符与汉字的区别**:在计算机编码中,英文字符(半角字符)通常占用1字节空间,而中文字符(全角字符)则占用2字节空间。 2. **计算输入长度**:为了准确判断用户输入是否超过了限制,我们需要编写逻辑来正确...

    CSS(js)限制页面显示的文本字符长度

    总之,通过结合CSS的布局控制和JavaScript的字符截断功能,我们可以有效地限制页面上文本的显示长度,确保内容的可读性和页面布局的一致性。在实际应用中,可能还需要考虑到兼容性、性能优化以及用户体验等因素。

    jQuery给固定文章字数超出自述以后文字不显示并替换成省略.zip

    3. 多语言支持:考虑到不同语言字符长度的差异,可以按字符数截断英文,按单词数截断其他语言。 总之,"jQuery给固定文章字数超出自述以后文字不显示并替换成省略"是一个实用的网页功能,通过结合jQuery和CSS,我们...

    javascript字数验证

    3. **多语言支持**:对于不同语言的文本输入,特别是包含中文等非英文字符的情况,字数限制尤为重要,因为这些字符通常占用更多的字节。 #### 四、扩展功能与注意事项 1. **自定义提示消息**:可以根据需求自定义...

    Javascript实现真实字符串剩余字数提示的实例代码

    需要注意的是,这个实现只考虑了英文字符和中文字符,对于其他多字节字符(如日文、韩文等)可能不准确。若需处理更多类型的字符,可以考虑使用更复杂的算法,如正则表达式匹配或者使用 `Intl.TextEncoder` API 来...

    JS监控前台文本框输入字数

    对于英文字符和其他一些符号,每个字符通常只占一个字节;而对于汉字等双字节或四字节字符,则会占用更多的空间。因此,在计算输入的字符长度时,需要考虑到这一点。 #### 示例代码解析 在提供的代码片段中,`...

    Jquery截取中文字符串的实现代码

    这个函数的目的是为了实现一个能够正确处理UTF-8编码中文字符的字符串截取功能,确保在Web界面中进行文本展示时,中文字符不会被截断导致乱码,同时考虑到大写字母的特殊性以及英文字符和标点符号占用的字节长度,...

    用CSS解决中英文混合字符串的截取省略问题的解决办法

    这种需求在中英文混合文本的处理上尤其突出,因为不同字符宽度和长度可能导致截断后的文本呈现效果不佳。 #### 传统方法及其局限性 传统的解决方法通常依赖于服务端脚本(如PHP)或者客户端脚本(如JavaScript)。...

Global site tag (gtag.js) - Google Analytics