Maison  >  Article  >  interface Web  >  Exemple d'utilisation d'expressions régulières pour calculer la longueur des caractères chinois dans les compétences javascript_javascript

Exemple d'utilisation d'expressions régulières pour calculer la longueur des caractères chinois dans les compétences javascript_javascript

WBOY
WBOYoriginal
2016-05-16 16:50:45990parcourir

Étant donné que JavaScript est codé en Unicode, tous les caractères sont un pour lui, mais pas pour le programme en arrière-plan. Habituellement, un caractère chinois dans le programme en arrière-plan occupe deux octets, ce qui conduit à la longueur de vérification frontale et dorsale. Incohérence, ce problème peut être résolu par la régularisation.

Copier le code Le code est le suivant :

fonction getRealLen( str ) {
return str. replace(/[^x00-xff]/g, '__').length; //Cela correspond à tous les caractères à deux octets
>

Un autre petit conseil est inclus :

Parfois, par souci de beauté et sans affecter la mise en page et l'interface, certains textes seront tronqués. Cependant, la largeur du chinois et de l'anglais est différente si le chinois est tronqué selon les normes anglaises, ou si l'anglais est tronqué. selon les normes chinoises, ce sera évidemment long et court, en particulier des choses comme les surnoms qui sont faciles à être à la fois chinois et anglais. Nous pouvons également utiliser l'idée ci-dessus

Copier. code Le code est le suivant :

function beautySub( str, len) {
var reg = /[u4e00-u9fa5]/g, // Correspondance professionnelle chinoise
slice = str.substring(0,len),
              realen = len - ( ~~( slice.match(reg) && slice.match(reg).length) ); ;
>
Ici, nous pensons qu'un caractère chinois a la largeur de deux caractères anglais. Si vous êtes perfectionniste, vous devriez penser que les largeurs de j, w et m sont différentes. de w et m et certaines lettres majuscules sont cohérentes avec le chinois. Il existe une marge d'amélioration considérable dans la régularité de cette fonction, et la position de départ de la troncature peut également être précisée.
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn