![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5ichR3cf52bjl2LcNXZnFWbp9CXt92YuUWelRXauYjM5cmbvlXZkVHavw1LcpDc0RHaiojIsJye.png)
//得到字元總數
function getchars(str) {
var i = 0;
var c = 0.0;
var unicode = 0;
var len = 0;
if (str == null || str == "") {
return 0;
}
len = str.length;
for(i = 0; i < len; i++) {
unicode = str.charcodeat(i);
if (unicode < 127) { //判斷是單字元還是雙字元
c += 1;
} else { //chinese
c += 2;
}
return c;
}
function sb_strlen(str) {
return getchars(str);
//截取字元
function sb_substr(str, startp, endp) {
var i=0; c = 0; unicode=0; rstr = '';
var len = str.length;
var sblen = sb_strlen(str);
if (startp < 0) {
startp = sblen + startp;
if (endp < 1) {
endp = sblen + endp;// - ((str.charcodeat(len-1) < 127) ? 1 : 2);
// 尋找起點
if (c >= startp) {
break;
var unicode = str.charcodeat(i);
if (unicode < 127) {
} else {
// 開始取
for(i = i; i < len; i++) {
rstr += str.charat(i);
if (c >= endp) {
return rstr;
//調用示例:
function getshortfilename(filename) {
short_filename = filename;
if (sb_strlen(short_filename) > 61) {
short_filename = sb_substr(short_filename, 0, 36) + ' ... ' + sb_substr(short_filename, -20);
return short_filename;
var chara = 'ni你2好1啊!'
js_self = chara.substr(4);
test = sb_substr(chara,4);
alert("js_self:"+js_self+"ext:"+test);
function mb_strlen(str) {
for(var i = 0; i < str.length; i++) {
len += str.charcodeat(i) < 0 || str.charcodeat(i) > 255 ? (charset == 'utf-8' ? 3 : 2) : 1;
return len;
<script language="javascript">
<!--
function cutstrlength(str,ilength)
{
var tmp=0;
var len=0;
var oklen=0
for(var i=0;i<ilength;i++)
if(str.charcodeat(i)>255)
tmp+=2
else
len+=1
oklen+=1
if(tmp+len==ilength)
return (str.substring(0,oklen));
break;
}
if(tmp+len>ilength)
return (str.substring(0,oklen-1)+"");
function checkfieldlength(fieldname,fielddesc,fieldlength)
var str=document.getelementbyid(fieldname).value;
var thelen=0;
var teststr='';
for(i=0;i<str.length;i++)
teststr=str.charat(i);
thelen=thelen+2;
thelen=thelen+1;
document.getelementbyid('showmsg').innertext=thelen;
if(thelen>fieldlength)
document.getelementbyid('showmsg').innertext=fielddesc;
//alert(fielddesc+" 的字段長度超過規定長度!");
//document.getelementbyid(fieldname).focus();
document.getelementbyid(fieldname).value=cutstrlength(str,fieldlength);
return false;
return true;
//-->
</script>
</head>
<body>
<form method="post" action="">
<textarea id="testarea" name="testarea" rows="3" cols="22" onkeyup="checkfieldlength('testarea', '超過允許輸入的字元個數', 20);"
onchange="checkfieldlength('testarea', '超過允許輸入的字元個數', 20);"></textarea>
<div id="testinfo">
已經輸入:<span id="showmsg"></span></div>
</form>
</body>
</html>