Szenario:
Das Längenattribut des String-Typs in js erhält die Anzahl der Zeichen in der Zeichenfolge, das Frontend muss diese jedoch häufig begrenzen String-Anzeigelänge. Ein chinesisches Zeichen nimmt die Anzeigeposition von zwei englischen Kleinbuchstaben ein. Daher ist es oft falsch, den Längenwert zur Beurteilung der Anzeigelänge zu verwenden, wenn Chinesisch und Englisch gemischt werden.
Die herkömmliche Lösung besteht darin, die Zeichenfolge als Länge 2 zu durchlaufen, nicht-chinesische Zeichen als Länge 1 und die Anzeigelänge der Zeichenfolge wird durch die neu berechnete Summe der Längen begrenzt. Schauen Sie sich den Code an ↓↓↓
var Tools ={ //是否包含中文 hasZh: function(str){ for(var i = 0;i < str.length; i++) { if(str.charCodeAt(i) > 255) //如果是汉字,则字符串长度加2 return true; return false; } }, //重新计算长度,中文+2,英文+1 getlen: function(str){ var strlen = 0; for(var i = 0;i < str.length; i++) { if(str.charCodeAt(i) > 255) //如果是汉字,则字符串长度加2 strlen += 2; else strlen++; } return strlen; }, //限制长度 limitlen: function(str, len){ var result = ""; var strlen = 0; for(var i = 0;i < str.length; i++) { if(str.charCodeAt(i) > 255) //如果是汉字,则字符串长度加2 strlen += 2; else strlen++; result += str.substr(i,1); if(strlen >= len){ break; } } return result; } }
Das Prinzip dieser Methode basiert auf den unterschiedlichen Unicode-Codierungsbereichen von Chinesisch und Englisch, die 2 Bytes und Englisch 1 Byte belegen, also Chinesisch Unicode Der codierte Wert muss größer als 2^8-1=255 sein.
Die obige Methode kann strenger sein: Berücksichtigen Sie den Unicode-Kodierungsbereich. Für den spezifischen Bereich können Sie die Unicode-Tabelle durchstöbern.
PS: Der Unicode-Kodierungsbereich chinesischer Zeichen im Hexadezimalformat ist 4E00 -9FA5, dezimal Dann ist es: 19968-40869, das heißt, der genaue Ausdruck für die Beurteilung von Chinesisch ist:
str.charCodeAt(i)>=19968 && str.charCodeAt(i)<=40869
Fügen Sie ein Wort ein, das nicht zu streng ist. Der Code muss nicht zu streng sein Schließlich wissen Sie nicht, dass der Benutzer (Test) was für seltsame Dinge verlieren wird.
Das obige ist der detaillierte Inhalt vonjs verarbeitet Zeichenfolgen, die chinesische Zeichen enthalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!