2바이트 문자의 길이는 자동으로 2로 계산됩니다. 문자를 선택할 때 1바이트 문자의 길이도 적용됩니다. 예를 들어 2는 한자 1개 또는 문자 2개를 사용하고, 1은 한자 1개 또는 문자를 사용합니다. [Ctrl A 모두 선택 참고: 외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다 ] // 得到字符串的真实长度(双字节换算为两个单字节) function getStrActualLen(sChars) { return sChars.replace(/[^\x00-\xff]/g,"xx").length; } // 截取固定长度子字符串 sSource为字符串iLen为长度 function getInterceptedStr(sSource, iLen) { if(sSource.replace(/[^\x00-\xff]/g,"xx").length <= iLen) { return sSource; } var str = ""; var l = 0; var schar; for(var i=0; schar=sSource.charAt(i); i++) { str += schar; l += (schar.match(/[^\x00-\xff]/) != null ? 2 : 1); if(l >= iLen) { break; } } return str; } var str1="这是一个字符串截取的函数,this is a test!"; //alert(getStrActualLen(str1)); alert(getInterceptedStr(str1,25));