Heim > Web-Frontend > js-Tutorial > Hauptteil

js verarbeitet Zeichenfolgen, die chinesische Zeichen enthalten

一个新手
Freigeben: 2017-10-12 09:36:16
Original
1230 Leute haben es durchsucht

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;
    }
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!