Da JavaScript Unicode-codiert ist, sind alle Zeichen für es eins, für das Hintergrundprogramm jedoch nicht. Normalerweise belegt ein chinesisches Zeichen im Hintergrundprogramm zwei Bytes, was zur Front-End- und Back-End-Überprüfungslänge führt. Inkonsistenz, dieses Problem kann durch Regularisierung gelöst werden.
Funktion getRealLen( str ) {
return str. replace(/[^x00-xff]/g, '__').length; //Dies entspricht allen Doppelbyte-Zeichen
}
Ein weiterer kleiner Tipp ist enthalten:
Manchmal werden einige Texte aus Gründen der Schönheit und ohne Auswirkungen auf das Layout und die Benutzeroberfläche abgeschnitten. Wenn Chinesisch und Englisch jedoch abgeschnitten sind, ist dies der Fall Nach chinesischen Maßstäben wird es natürlich lang und kurz sein, insbesondere Dinge wie Spitznamen, die sowohl chinesisch als auch englisch sein können. Wir können auch die obige Idee verwenden
function beautySub( str, len) {
var reg = /[u4e00-u9fa5]/g, // Professionelles Matching-Chinesisch
Slice = str.substring(0,len),
realen = len - ( ~~( Slice.match(reg) && Slice.match(reg).length) : 1) ;
}
Hier denken wir, dass ein chinesisches Zeichen die Breite von zwei englischen Zeichen hat. Wenn Sie ein Perfektionist sind, sollten Sie denken, dass die Breiten von j, w und m unterschiedlich sind von w, m und einigen Großbuchstaben stimmen mit dem Chinesischen überein. Die Regelmäßigkeit dieser Funktion kann erheblich verbessert werden, und die Startposition der Kürzung kann ebenfalls angegeben werden.
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn