javascript字串操作程式碼封裝程式碼例項

antzone發表於2017-04-17

本章節分享一段程式碼例項,它實現了對字串操作的一些封裝。

如果用過.net的朋友都知道,對於字串的操作可以使用StringBuilder類。

下面就模擬封裝一個類似於StringBuilder類的功能。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
function StringBuilder() {
  this.strings = new Array();
}
 
StringBuilder.prototype.Append = function (str) {
  this.strings.push(str);
};
 
StringBuilder.prototype.ToString = function () {
  return this.strings.join("");
};
 
StringBuilder.prototype.Remove = function (value) {
  if (this.strings.length >= 1) {
    this.strings = this.strings.join("").split("");
    for (var i = 0; i < this.strings.length; i++) {
      if (this.strings[i] == value) {
        for (var j = i; j < (this.strings.length - 1); j++) {
          this.strings[j] = this.strings[j + 1];
        }
        this.strings.length--;
        this.strings[this.strings.length] = null;
        this.strings.length--;
        break;
      }
    }
  }
  else {
    this.strings.length = 0;
  }
};
 
StringBuilder.prototype.Insert = function (value, index) {
  if (index < 0) { index = 0; }
  this.strings = this.strings.join("").split("");
  if ((this.strings.length >= 1) && (index <= this.strings.length)) {
    for (var i = this.strings.length; i > index; i--) {
      this.strings[i] = this.strings[i - 1];
    }
    this.strings[index] = value;
    this.strings.length++;
  }
  else {
    this.strings[0] = value;
  }
};
 
StringBuilder.prototype.Exist = function (value) {
  if (this.strings.length > 1) {
    if (this.strings.join("").indexOf(value) != -1) {
      return true;
    }
  }
  return false;
};
 
StringBuilder.prototype.Clear = function () {
  this.strings.length = 0;
};
 
StringBuilder.prototype.Length = function () {
  return this.strings.join("").length;
};

相關文章