Heim > Artikel > Web-Frontend > Die js-Verarbeitung enthält Beispiel-Sharing für chinesische Zeichenfolgen
Dieser Artikel enthält hauptsächlich ein Beispiel für die Verarbeitung von Zeichenfolgen mit chinesischen Schriftzeichen durch js. Der Herausgeber findet es ziemlich gut, deshalb teile ich es jetzt mit Ihnen und gebe es als Referenz. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.
Szenario:
Das Längenattribut des String-Typs in js ruft die Anzahl der Zeichen in der Zeichenfolge ab, jedoch die Vorderseite Ende häufig Es ist erforderlich, die Anzeigelänge der Zeichenfolge zu begrenzen. Ein chinesisches Zeichen nimmt die Anzeigeposition von zwei englischen Kleinbuchstaben ein. Daher ist es häufig 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 belegen 2 Bytes. 1 Byte, daher muss der chinesische Unicode-Kodierungswert größer als 2^8-1=255 sein.
Die obige Methode kann strenger sein: Berücksichtigen Sie den Unicode-Codierungsbereich. Für den spezifischen Bereich können Sie Unicode-Tabelle
PS: Der Unicode-Kodierungsbereich chinesischer Zeichen beträgt 4E00-9FA5 im Hexadezimalformat und 19968-40869 im Dezimalformat. Das heißt, der genaue Ausdruck für die Beurteilung des Chinesischen lautet:
str.charCodeAt(i)>=19968 && str.charCodeAt(i)<=40869
Fügen Sie eine weniger strenge Aussage ein, der Code muss nicht zu restriktiv sein, schließlich wissen Sie nicht, welche seltsamen Dinge der Benutzer (Test) verlieren wird.
Verwandte Empfehlungen:
Implementierungsmethode zum Ersetzen aller jQuery-Strings
Detaillierte Erläuterung der Vue-Syntax-Splicing-Strings
So implementieren Sie die js-Interception-String-Funktion
Das obige ist der detaillierte Inhalt vonDie js-Verarbeitung enthält Beispiel-Sharing für chinesische Zeichenfolgen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!