您的位置:首页 > Web前端 > JavaScript

用JavaScript限制文本框所输入字符串的最大字节数

2009-04-26 23:40 344 查看
input控件有一个MaxLength 属性可以限制输入的最大字符数,但是该属性在判断中文字符时与英文字符一样,算作一个字符,而我们有时侯又往往需要控制输入字符串所占用的最大字节数。string对象有一个叫charCodeAt(index)的方法,可以获取字符串中某一个字符的编码。我们都知道,字母数字的ascii编码都小于255而汉字的编码肯定大于255,我们可以使用此方法来判断字符串占用的是一个字节还是两个字节。因此,我们可以通过自定义两个JavaScript函数,在通过input的onkeyup事情触发函数来解决此问题。实现代码如下:

//判断字符串所占的字节数
function GetCharLength(str)
{
var iLength = 0; //记录字符的字节数
for(var i = 0;i<str.length;i++) //遍历字符串中的每个字符
{
if(str.charCodeAt(i) >255) //如果当前字符的编码大于255
{
iLength += 2; //所占字节数加2
}
else
{
iLength += 1; //否则所占字节数加1
}
}
return iLength; //返回字符所占字节数
}
//若字符串长度超过要求,截掉多余部分
function CutStr(elementID,len) //elementID表示要进行处理的对象ID,len表示设置的限制字节数
{
var str = document.getElementById(elementID).value; //获取要处理的字符串
var curStr = ""; //用于实时存储字符串
for(var i = 0;i<str.length;i++) //遍历整个字符串
{
curStr += str.charAt(i); //记录当前遍历过的所有字符
if(GetCharLength(curStr )>len) //如果当前字符串超过限制长度
{
document.getElementById(elementID).value = str.substring(0,i); //截取多余的字符,并把剩余字符串赋给要进行处理的对象
return; //结束函数
}
}
}

通过onkeyup事件调用CutStr函数就可以实现对ID为elementID的最大字符串字节数的控制。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: