Tout d'abord, alors parlez non-sens ^ _ ^
La copie de code est la suivante:
/ **
* Transformez les caractères pleine largeur
* /
fonction todbc (str) {
var result = "";
var len = str.length;
pour (var i = 0; i <len; i ++)
{
var ccode = str.charcodeat (i);
// La différence entre le plein et le demi-angle (sauf l'espace): 65248 (décimal)
ccode = (ccode> = 0x0021 && ccode <= 0x007e)? (ccode + 65248): ccode;
// Traitement des espaces
ccode = (ccode == 0x0020)? 0x03000: ccode;
Résultat + = String.FromCharcode (CCODE);
}
Résultat de retour;
}
/ **
* Transformez les personnages de la largeur
* /
fonction tosbc (str) {
var result = "";
var len = str.length;
pour (var i = 0; i <len; i ++)
{
var ccode = str.charcodeat (i);
// La différence entre le plein et le demi-angle (sauf l'espace): 65248 (décimal)
ccode = (ccode> = 0xff01 && ccode <= 0xff5e)? (ccode - 65248): ccode;
// Traitement des espaces
ccode = (ccode == 0x03000)? 0x0020: ccode;
Résultat + = String.FromCharcode (CCODE);
}
Résultat de retour;
}
Points de connaissance
En comparant les caractères demi-largeur avec des caractères pleine largeur (caractères ASCII), nous pouvons constater que la gamme de caractères ASCII avec des caractères pleine largeur et demi-largeur est: 0x20 ~ 0x7e.
Par exemple:
La différence entre les symboles de demi-largeur et pleine largeur
# 0x00230xff030xfee0
? 0x003f0xff1f0xfee0
Espace 0x00200x030000x2fe0
Sauf les espaces, dans d'autres caractères, l'ensemble et la large largeur sont différents: 0xffe0
Par conséquent, dans la conversion de caractère de pleine largeur et de demi-largeur, un traitement spécial des espaces est nécessaire.
Par exemple:
Pleine largeur = demi-largeur + 0xfee0
Demi-largeur = pleine largeur - 0xffe0