js는 문자열이 차지하는 바이트 수를 계산하는 기능을 제공하지만 document.form1.username.value="I am Chinese",document.form1.username과 같은 한자가 차지하는 바이트 수를 정확하게 계산할 수 없습니다. value.length는 10이 아닌 5를 반환하는데, 이는 고정 길이 문자의 입력을 제한하고 고정 길이 문자열을 가로채는 등 프로그래밍에 몇 가지 문제를 가져옵니다. 이 문제로 인해 다음과 같은 효과를 얻을 수 없습니다. 고정 길이 문자열을 가로채는 데 사용되는 간단한 함수를 중국어와 영어 모두에 적용할 수 있도록 작성했습니다. 잘못된 점이 있으면 수정해 주세요.
//js는 중국어와 중국어 모두 문자열을 가로챕니다. 영어 가능
//주어진 문자열이 지정된 길이보다 길면 지정된 길이를 가로채서 반환하고, 그렇지 않으면 원본 문자열을 반환합니다.
함수 cutstr(str,len)
{
var str_length = 0;
var str_len = 0;
str_cut = new String();
str_len = str.length;
for(var i = 0;i {
a = str.charAt(i);
str_length ;
if(escape(a).length > 4 )
{
//인코딩 후 한자의 길이가 4보다 큼
str_length ;
}
str_cut = str_cut.concat(a);
if(str_length&g t; =len)
~ 소스 문자열;
if(str_length return str;
}
}