<script type=
"text/javascript"
>
/*************************************************************
Description : 正确截取单字节和双字节混和字符串
String str : 要截取的字符串
Number : 截取长度
*************************************************************/
function
substr(str, len)
{
if
(!str || !len) {
return
''
; }
//预期计数:中文2字节,英文1字节
var
a = 0;
//循环计数
var
i = 0;
//临时字串
var
temp =
''
;
for
(i=0;i<str.length;i++)
{
if
(str.charCodeAt(i)>255)
{
//按照预期计数增加2
a+=2;
}
else
{
a++;
}
//如果增加计数后长度大于限定长度,就直接返回临时字符串
if
(a > len) {
return
temp; }
//将当前内容加到临时字符串
temp += str.charAt(i);
}
//如果全部是单字节字符,就直接返回源字符串
return
str;
}
var
str =
"呵呵he哈哈嘿嘿and"
;
document.write(
"字符串:<font color='red'>"
+str+
"</font><br /><br />"
);
document.write(
"javascript 默认截取10个字节的返回值:<br />"
);
document.write(
"<font color='red'>"
+str.substr(0, 10)+
"</font><br /><br />"
);
document.write(
"用本文介绍的方法截取10个字节的返回值:<br />"
);
document.write(
"<font color='red'>"
+substr(str, 10)+
"</font><br /><br />"
);
document.write(
"截取9个字节的返回值:<br />"
);
document.write(
"<font color='red'>"
+substr(str, 9)+
"</font><br /><br />"
);
</script>