Javascript判断字符串的字节数

转载 2008年07月09日 09:38:00

在关系数据库中,字符型的字段是有严格的长度限制的,如果写入的字符串长度超过最大限制,会导致异常。虽然我们目前没有直接用到关系数据库,但是SAP中会遇到这个问题,因此需要根据字符串的长度在前端做一些控制和处理。

这里有一个问题,如果直接通过基础类String的length属性判断,得到的值是不准确的,因为这个值仅仅是字符数,而不是字节数,例如“高端OA事业部”,如果用length属性,得到的是7,但是这个字符串实际上是12字节长的。

如果仅仅判断一个字符串的长度是否超过了最大字节数的限制,可以通过如下脚本

str=str.replace(/[^/x00-/xff]/g,"**");

这样可以将所有的双字节字符都替换为单字节的标记,再用length属性就可以得出准确的字节数

如果需要根据最大字节数的限制,对已有的字符串进行截取,可以通过以下函数进行

/**

*功能:判断给定的字符串是否在指定的字节数内,如果超出指定的字节数,按参数指定的上限截*断

*参数说明:strVal 要判断的字符串 iMaxNum 允许的最大字节数

*返回值:重整之后的字符串,如果在允许字节数范围内,则原样返回,否则将返回按照最大上限截断后的字符串

*/

function interceptString(strVal,iMaxNum){

var cToken,iByteN=0; var strReturn=""; var reg = /[^/x00-/xff]/; //遍历并判断字符串中的每个字符是否是双字节的

for(var i=0;i       cToken = strVal.substr(i,1);        if (cToken.match(reg)){              iByteN += 2;              if(iByteN>iMaxNum){                     return strReturn;              }        }else{              iByteN += 1;        }        strReturn += cToken;        if (iByteN==iMaxNum){               return strReturn;        } }

}

相关文章推荐

C#获取字符串的字节数

  • 2012年02月22日 09:50
  • 26KB
  • 下载

使用 sql、 javascript 按字节截取、计算中英文混合字符串字节数

简介:使用sql和javascript两种方式统计中英文混合字符串中字节长度的办法。 历史: 以前做前台验证的时候,使用过用javascript计算中英文混合字符串的小算法,比较简单,如下: ...
  • zlcoy_1
  • zlcoy_1
  • 2012年02月09日 16:40
  • 2113

面试题之——对包含汉字的字符串截取指定字节数

题目:编写一个截取字符串的函数,输入为一个字符串和字节数, 输出为按字节截取的字符串,但要保证汉字不被截取半个,如"我ABC",4,应该截取"我AB",输入"我ABC汉DEF",6, 应该输出"我AB...
  • zyh5540
  • zyh5540
  • 2013年09月16日 22:32
  • 1939

Java中字符编码和字符串所占字节数 .

Java中字符串所占的字节数和字符编码密切相关。 Java编码实际上可以涉及这几个方面的知识:IDE的编码,操作系统默认编码,Java字符编码。 例如:我们使用eclipse编写Java程序时,可...

JS计算UTF8字符串占用字节数(escape版与UTF8专用版)

使用escape是为了使所有编码都转换成统一的编码格式(Unicode), 如GBK编码的"中国", 与UTF8编码的"中国",它们的escape返回值都是一样的,所以代码具有通用性,且escape在...

JS计算字符串所占字节数

原文来自:http://www.alloyteam.com/2013/12/js-calculate-the-number-of-bytes-occupied-by-a-string/ 废话不说...

Java中字符编码和字符串所占字节数

Java中字符串所占的字节数和字符编码密切相关。 Java编码实际上可以涉及这几个方面的知识:IDE的编码,操作系统默认编码,Java字符编码。 例如:我们使用eclipse编写Java程序时,可...
  • zklth
  • zklth
  • 2011年11月27日 16:34
  • 4627

JAVA面试题_根据字节数截取字符串,但是汉字不能截取半个。

截取字符串指定指定字节数的内容,如果指定的字节数在汉字的中间,汉字不能截取部分,只截取前面的内容。...

Java中如何创建指定大小字节数的字符串

Java中如何创建指定大小字节数的字符串 如:想创建一个固定长度为12个字节的字符串如何创建呢.谢谢 更多 0 分享到: 对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理...
  • csnewdn
  • csnewdn
  • 2016年11月17日 13:10
  • 262

编写函数,从一个字符串中按字节数截取一部分,但不能截取出半个中文(GBK码表),两种方法的比较。

题目:从“HM程序员训练营”中截取2个字节是“HM”,截取4个则是“HM程”,截取3个字节也要是"HM"而不要出现半个中文。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Javascript判断字符串的字节数
举报原因:
原因补充:

(最多只允许输入30个字)