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;        } }

}

js中文长度校验以及字节

单字节指只占一个字,是英文字符。双字是占两个字节的,中文字符都占两个字节 单字节的英文是Byte;比特是最小的数值单位,它的英文是Bit。 一个字节包含8个比特,通常计算机初学者接触到的...
  • john2522
  • john2522
  • 2013-05-24 17:03:32
  • 4699

<em>js判断字节数</em>.rar

用<em>js判断字节</em>的前台方法,用起来比较方便... 用<em>js判断字节</em>的前台方法,用起来比较方便 综合评分:0 收藏评论举报 所需: 3 积分/C币 下载<em>个数</em>: 43 开通VIP 立即下...
  • 2018年04月14日 00:00

C#获取字符串的字节数

         示例代码:          ///         /// 控制审批意见用户输入数据的长度,英文最多218个,汉字最多109个,共218字节        ///         ...
  • lianchangshuai
  • lianchangshuai
  • 2010-12-28 16:37:00
  • 1986

javascript判断字符串字节数

1.正则表达式判断: var str = 'string阿'; alert(str.replace(/[^x00-xFF]/g,'**').length); 2.for循环判断: var str...
  • u012897782
  • u012897782
  • 2015-04-08 17:45:23
  • 80

一个用js限制用户输入字节个数的问题.

页面上有一个textarea(注意是多行的),现在需要用Js实现下面的功能. 1.只能输入一定字节的字符,比如允许的最大长度是10,那么只能输入10个字母或者5个 汉字(双字节的字符). 2.而且允许...
  • jackeyabc
  • jackeyabc
  • 2007-04-11 19:17:00
  • 1075

JS 判断字符字节长度

//获得字符字节长度function getStrByteLen(str){     if(str =='') {         return true;     } else {         ...
  • mengxianhua
  • mengxianhua
  • 2010-09-16 12:54:00
  • 2225

判断字符串所占的字节数

//判断字符串所占的字节数 function GetCharLength(str) { var iLength = 0; //记录字符的字节数 for (var i = 0; i <...
  • fendou4533
  • fendou4533
  • 2014-05-09 11:57:22
  • 929

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

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

JS获取字符串长度,汉字算两个字节

//第一种 GetLength = function(str) { var realLength = 0; for (var i = 0; i < str.length; i++) ...
  • pg_guo
  • pg_guo
  • 2013-01-30 02:05:42
  • 14473

JS 判断输入字符串的长度(中文占用两个字节,英文占用一个字节)

function getByteLen(val) {    //传入一个字符串             var len = 0;             for (var i = 0; i  val....
  • yx13649017813
  • yx13649017813
  • 2015-01-16 13:16:52
  • 2207
收藏助手
不良信息举报
您举报文章:Javascript判断字符串的字节数
举报原因:
原因补充:

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