最近做项目中遇到一个小问题,需要计算一段文本的实际长度,在网上找到了这么段代码觉得有用,分享一下给大家。
/** * 字符串中包括中文、英文和特殊字符 * 中文:占2个字节长度,英文和特殊字符占一个字节长度 */ var getLenByChartcode = function(str){ var realLength = 0, len = str.length, charCode = -1; for (var i = 0; i < len; i++) { charCode = str.charCodeAt(i); if (charCode >= 0 && charCode <= 128) realLength += 1; else realLength += 2; } return realLength; }
/** * [^\x00-\xff]即ASCII 编码不在0-255的字符 */ var getLenByRegexp = function(str){ return str.replace(/[^\x00-\xff]/g,"aa").length; }