목적 : 문자열의 길이를 계산합니다 (영어로 된 문자 1 개, 중국어로 2 자)
방법 1 : 방법 1 : 방법 1 : 방법 1 : : 방법 1 : : 방법 1 : : : 방법 1 : : 방법 1 : : 방법 1 : : 방법 1 : : 방법 1 : : 방법 1 : : 방법 1 : : 방법 1 : 방법 1 : 방법 1 : : 방법 1 : : 방법 1 : : 방법 1 : 방법 1 : 방법 1 : 방법 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 : 방법 2.
코드 사본은 다음과 같습니다. function 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 :
코드 사본은 다음과 같습니다. var jmz = {};
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;
}
RealLength를 반환하십시오.
};
Method 4:
코드 사본은 다음과 같습니다. var l = str.length;
var 블렌드 = 0;
for (i = 0; i <l; i ++) {
if ((str.charcodeat (i) & 0xff00)! = 0) {
블렌 ++;
}
블렌 ++;
}
Method 5:
이중 바이트를 두 개의 단일 바이트로 교체 한 다음 길이를 얻습니다.
다음과 같이 코드를 복사하십시오. getBlen = function (str) {
if (str == null) 반환 0;
if (typeof str! = "String") {
str += "";
}
return str.replace (/[^/x00-/xff]/g, "01"). 길이;
}