不一定是中文才算两个字节,全角字符也会被算成两个字节。先把所有全角字符转化成半角,然后再取其length就可以知道字符串的长度了。 // 全角文字,半角文字的长度計算 function getLength(sCheck) { var n = 0; // 全角字符转化成半角 var str = toHankaku(sCheck); var len = str.length; for (var i = 0; i < len; i++) { // MSIE环境的全角文字判断 n += checkMZenKaKu(str.charAt(i)) ? 2 : 1; } return n; }
function check_character2(theField,theAlert,maxlen)
{
var theValue=theField.value;
if(theValue.length==0) return true;
var bytelen=0;
var re=/[^\x00-\xff]/g;
re.compile();
for(var i=0;i<theValue.length;i++){
if(re.test(theValue.charAt(i)))
{
bytelen=bytelen+2;
}else{
bytelen+=1;
}
}
if(bytelen>maxlen)
{
alert(theAlert+"输入长度大于"+maxlen+",请重新输入!");
return false;
}
return true;
}
// 全角文字,半角文字的长度計算
function getLength(sCheck) {
var n = 0;
// 全角字符转化成半角
var str = toHankaku(sCheck);
var len = str.length;
for (var i = 0; i < len; i++) {
// MSIE环境的全角文字判断
n += checkMZenKaKu(str.charAt(i)) ? 2 : 1;
}
return n;
}