获取中英文统一的长度

//将中文字符的长度转换为英文字符的长度
function utf16to8(str) {
	//去除左右空格
		str=str.replace(/\\r/g,"\r");
		str=str.replace(/\\n/g,"\n");
        var out, i, len, c;
        out = "";
        len = str.length;
        for(i = 0; i < len; i++) {
			c = str.charCodeAt(i);
			if ((c >= 0x0001) && (c <= 0x007F)) {
				out += str.charAt(i);
				//alert("1---"+out+"---"+out.length);
			} else if (c > 0x07FF) {
				out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
				out += String.fromCharCode(0x80 | ((c >>  6) & 0x3F));
				out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));
				//alert("2---"+out+"---"+out.length);
			} else {
				out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));
				out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));
				//alert("3---"+out+"---"+out.length);
			}
        }
        return out;
}

使用方法:utf16to8(obj.val()).length

  • Tags:

发表评论/留言

为了您的身体健康、潇洒、美丽、帅气,请不要灌水。

/ 快捷键:Ctrl+Enter