快速业务通道

Javascript校验含中文的字符串长度

作者 佚名技术 来源 网页制作 浏览 发布时间 2012-03-07

网上有不少解决方案,贡献下我使用的两个函数:

	/**
	 * 得到字符串的字符长度(一个汉字占两个字符长)
	 */
	function getBytesLength(str) {
		// 在GBK编码里,除了ASCII字符,其它都占两个字符宽
		return str.replace(/[^\x00-\xff]/g, ''xx'').length;
	}

	/**
	 * 根据字符长来截取字符串
	 */
	function subStringByBytes(val, maxBytesLen) {
		var len = maxBytesLen;
		var result = val.slice(0, len);
		while(getBytesLength(result) > maxBytesLen) {
			result = result.slice(0, --len);
		}
		return result;
	}

一个实例:

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号