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)
source string;
if(str_length< len){
return str;
}
}