Heim  >  Artikel  >  Web-Frontend  >  Die js-Verarbeitung enthält Beispiel-Sharing für chinesische Zeichenfolgen

Die js-Verarbeitung enthält Beispiel-Sharing für chinesische Zeichenfolgen

小云云
小云云Original
2018-01-25 11:35:321952Durchsuche

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!

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