- /*****************************************************************
- * Stringbuilder Class - emulates the C#/VB.NET stringbuilder
- * @constructor
- *****************************************************************/
- function StringBuilder() {
- var strings = [];
- this.append = function (string)
- {
- string = verify(string);
- if (string.length > 0) {
- strings[strings.length] = string;
- }
- };
- this.appendLine = function (string)
- {
- string = verify(string);
- if (this.isEmpty())
- {
- if (string.length > 0) {
- strings[strings.length] = string;
- }
- else {
- return;
- }
- }
- else {
- strings[strings.length] = string.length > 0 ? "\\r\\n" + string : "\\r\\n";
- }
- };
- this.clear = function () { strings = []; };
- this.isEmpty = function () { return strings.length == 0; };
- this.toString = function () { return strings.join(""); };
- var verify = function (string)
- {
- if (!defined(string)) {
- return "";
- }
- if (getType(string) != getType('string')) {
- return String(string);
- }
- return string;
- };
- var defined = function (el)
- {
- return el != null && typeof(el) != "undefined";
- };
- var getType = function (instance)
- {
- if (!defined(instance.constructor)) {
- throw new Error("Unexpected object type");
- }
- var type = String(instance.constructor).match(/function\\s+(\\w+)/);
- return defined(type) ? type[1] : "undefined";
- };
- }
- //该片段来自于http://www.codesnippet.cn/detail/180620134119.html
来源: http://www.codesnippet.cn/detail/180620134119.html