javascript 判断中文字符长度的函数代码.docx_第1页
javascript 判断中文字符长度的函数代码.docx_第2页
javascript 判断中文字符长度的函数代码.docx_第3页
javascript 判断中文字符长度的函数代码.docx_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

首先,我们定义一个新的函数getBytes()取得字符串的字节数,在javascript里,这个函数是标准函数。 复制代码 代码如下:Stotype.getBytes = function() var cArr = this.match(/x00-xff/ig); return this.length + (cArr = null ? 0 : cArr.length); function paramCheck(cur) if(cur.value.getBytes() 64) alert(字符超过64个字符); return false; return true; getBytes用正则表达式来判断字符串中包含汉字的个数,包含的汉字都放到数组cArr中,这样cArr的长度就是汉字的总数。getBytes方法返回length加上汉字数,就是总的字节数。 只是使用了x00-xff,这个有点恶心,有些特殊字符也是能匹配到的,比如等。 但是如果使用u4E00-u9FA5的话,却不能匹配到中文以下是另外几种方法,大家可以测试下:一种: 复制代码 代码如下:function _length(str) var len=0; for(var i=0;i)len+=2;elselen+; return len; 二种: 复制代码 代码如下:Stotype.gblen = function() var len = 0; for (var i=0; i127 | this.charCodeAt(i)=94) len += 2; else len +; return len; Stotype.gbtrim = function(len, s) var str = ; var sp = s | ; var len2 = 0; for (var i=0; i127 | this.charCodeAt(i)=94) len2 += 2; else len2 +; if (len2 sp.length) ? len-sp.length: len; for (var i=0; i127 | this.charCodeAt(i)=94) len2 += 2; else len2 +; if (len2 len) str += sp; break; str += this.charAt(i); return str; var str1 = 世上最牛的#%&们 世上最牛的#%&们; document.write(str1 = + str1 + ); document.write(length = + str1.gblen() + ); document.write(gbtrim(10) = + str1.gbtrim(10) + ); document.write(gbtrim(10, ) = + str1.gbtrim(10, ) + ); document.write(gbtrim(12, - ) = + str1.gbtrim(12, -) + ); / gbtrim(len 截取长度,按英文字节长度计算, s截取后的省略字符,如 ) / 备注: 这里中文字符都是当作两个长度来计算的,所以gbtrim中的len为10时,是显示最多5个汉字的。 / 当汉字数大于5时,由于截取后加上“”,所以只显示4个汉字。 首先,我们定义一个新的函数getBytes()取得字符串的字节数,在javascript里,这个函数是标准函数。 复制代码 代码如下:Stotype.getBytes = function() var cArr = this.match(/x00-xff/ig); return this.length + (cArr = null ? 0 : cArr.length); function paramCheck(cur) if(cur.value.getBytes() 64) alert(字符超过64个字符); return false; return true; getBytes用正则表达式来判断字符串中包含汉字的个数,包含的汉字都放到数组cArr中,这样cArr的长度就是汉字的总数。getBytes方法返回length加上汉字数,就是总的字节数。 只是使用了x00-xff,这个有点恶心,有些特殊字符也是能匹配到的,比如等。 但是如果使用u4E00-u9FA5的话,却不能匹配到中文以下是另外几种方法,大家可以测试下:一种: 复制代码 代码如下:function _length(str) var len=0; for(var i=0;i)len+=2;elselen+; return len; 二种: 复制代码 代码如下:Stotype.gblen = function() var len = 0; for (var i=0; i127 | this.charCodeAt(i)=94) len += 2; else len +; return len; Stotype.gbtrim = function(len, s) var str = ; var sp = s | ; var len2 = 0; for (var i=0; i127 | this.charCodeAt(i)=94) len2 += 2; else len2 +; if (len2 sp.length) ? len-sp.length: len; for (var i=0; i127 | this.charCodeAt(i)=94) len2 += 2; else len2 +; if (len2 len) str += sp; break; str += this.charAt(i); return str; var str1 = 世上最牛的#%&们 世上最牛的#%&们; document.write(str1 = + str1 + ); document.write(length = + str1.gblen() + ); document.write(gbtrim(10) = + str1.gbtrim(10) + ); document.write(gbtrim(10, ) = + str1.gbtrim(10, ) + ); document.write(gbtrim(12, - ) = + str1.gbt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论