วัตถุประสงค์: คำนวณความยาวของสตริง (1 อักขระในภาษาอังกฤษและ 2 อักขระเป็นภาษาจีน)
วิธีที่ 1:
การคัดลอกรหัสมีดังนี้:
string.prototype.gblen = function () {
var len = 0;
สำหรับ (var i = 0; i <this.length; i ++) {
if (this.charcodeat (i)> 127 || this.charcodeat (i) == 94) {
Len += 2;
} อื่น {
Len ++;
-
-
กลับเลน;
-
วิธีที่ 2:
การคัดลอกรหัสมีดังนี้: function strlen (str) {
var len = 0;
สำหรับ (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;
สำหรับ (var i = 0; i <len; i ++) {
charcode = str.charcodeat (i);
if (charcode> = 0 && charcode <= 128) realLength += 1;
reallength อีกครั้ง += 2;
-
กลับมาอีกครั้ง
-
วิธีที่ 4:
การคัดลอกรหัสมีดังนี้: var l = str.length;
var Blend = 0;
สำหรับ (i = 0; i <l; i ++) {
if ((str.charcodeat (i) & 0xff00)! = 0) {
Blen ++;
-
Blen ++;
-
วิธีที่ 5:
แทนที่สองไบต์ด้วยสองไบต์เดียวจากนั้นรับความยาว
คัดลอกรหัสดังนี้: getBlen = function (str) {
ถ้า (str == null) กลับ 0;
if (typeof str! = "String") {
str += "";
-
return str.replace (/[^/x00-/xff]/g, "01"). ความยาว;
-