There are many methods, for example:
First: (use the charCodeAt method of the String object)
Copy codeThe Code is as follows:
String. prototype. getBytesLength = function (){
Var length = 0;
For (I = 0; I <this. length; I ++ ){
ICode = this. charCodeAt (I );
If (iCode> = 0 & iCode <= 255) | (iCode> = 0xff61 & iCode <= 0xff9f )){
Length + = 1;
} Else {
Length + = 2;
}
}
Return length;
}
Second: (use the escape () method to convert the code and then determine)
Copy codeThe Code is as follows:
String. prototype. getBytesLength = function (){
Var str = escape (this );
For (var I = 0, length = 0; I <str. length; I ++, length ++ ){
If (str. charAt (I) = "% "){
If (str. charAt (++ I) = "u "){
I + = 3;
Length ++;
}
I ++;
}
}
Return length;
}
The third method is completely speechless!
Copy codeThe Code is as follows:
String. prototype. getBytesLength = function (){
Return this. replace (/[^ \ x00-\ xff]/gi, "--"). length;
}
I like the third method. All the above Code has passed the test.
Simple code with no test results
Px