目的:文字列の長さを計算します(英語で1文字、中国語で2文字)
方法1:
コードコピーは次のとおりです。
string.prototype.gblen = function(){
var len = 0;
for(var i = 0; i <this.length; i ++){
if(this.charcodeat(i)> 127 || this.charcodeat(i)== 94){
len += 2;
} それ以外 {
len ++;
}
}
レンを返します。
}
方法2:
コードコピーは次のとおりです。関数strlen(str){
var len = 0;
for(var i = 0; i <str.length; i ++){
var c = str.charcodeat(i);
//シングルバイトプラス1
if((c> = 0x0001 && c <= 0x007e)||(0xff60 <= c && c <= 0xff9f)){
len ++;
}
それ以外 {
len+= 2;
}
}
レンを返します。
}
方法3:
コードコピーは次のとおりです。VARJMZ= {};
jmz.getLength = function(str){
/// <summary>文字列の実際の長さ、中国語2、英語1 </summary>
/// <param name = "str">の長さの文字列を取得する</param>
var reallength = 0、len = str.length、charcode = -1;
for(var i = 0; i <len; i ++){
charcode = str.charcodeat(i);
if(charcode> = 0 && charcode <= 128)Reallength += 1;
else reallength += 2;
}
Return Reallength;
};
方法4:
コードコピーは次のとおりです。varl = str.length;
var blend = 0;
for(i = 0; i <l; i ++){
if((str.charcodeat(i)&0xff00)!= 0){
Blen ++;
}
Blen ++;
}
方法5:
ダブルバイトを2つの単一バイトに置き換えてから、長さを取得します
次のようにコードをコピーします:getblen = function(str){
if(str == null)0;
if(typeof str!= "string"){
str += "";
}
return str.replace(/[^/x00-/xff]/g、 "01")。長さ;
}