js计算textarea输⼊⽂字的长度
前⾔
⽇常开发过程中,有些时候我们想使⽤textarea,然后限制输⼊的长度,在textarea末尾显⽰剩余可输⼊的字节数。如下图:
解决⽅法:
常⽤的有三种⽅法:
1、通过判断charCodeAt,区分字母与中⽂,然后计算字符串的长度。
2、通过使⽤charCodeAt 和 0xff00区分中⽂与英⽂,这个代码量稍微减少⼀些。
3、使⽤正则,把输⼊的中⽂,转成英⽂。1个中⽂等于两个英⽂,最后计算英⽂个数。
代码如下:
⽅法⼀:
var obj = {};
obj.GetLength = function(str) {
// <summary>获得字符串实际长度,中⽂2,英⽂1</summary>
// <param name="str">要获得长度的字符串</param>
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;
};
js 正则替换
alert(obj.GetLength('这是中⽂aaaaaaa'));
⽅法⼆(更简洁的⽅法):
var length = str.length; // str是输⼊的字符串
var blen = 0;
for (i=0; i<length; i++) {
if ((str.charCodeAt(i) & 0xff00) != 0) { // 如果是英⽂,返回0
blen ++;
}
blen ++;
}
⽅法三(更更简洁的⽅法):
var obj = {};
obj.GetLength = function(str) { // str是输⼊的字符串
place(/[\u0391-\uFFE5]/g,"aa").length;  // 先把中⽂替换成两个字节的英⽂,再计算长度
};
alert(obj.GetLength('这是中⽂aaaaaa'));
TIP:
charCodeAt()⽅法的作⽤是:返回指定位置的字符的 Unicode 编码

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。