js實(shí)現(xiàn)C#的StringBuilder效果完整實(shí)例
本文實(shí)例講述了js實(shí)現(xiàn)C#的StringBuilder效果。分享給大家供大家參考,具體如下:
/*
##################### DO NOT MODIFY THIS HEADER #####################
# Title: StringBuilder Class #
# Description: Simulates the C# StringBuilder Class in Javascript. #
# Author: Adam Smith #
# Email: ibulwark@hotmail.com #
# Date: November 12, 2006 #
#####################################################################
*/
// Simulates the C# StringBuilder Class in Javascript.
// Parameter["stringToAdd"] - The string to add.
StringBuilder = function(stringToAdd)
{
var h = new Array();
if(stringToAdd){h[0] = stringToAdd;}
this.Append = Append;
this.AppendLine = AppendLine;
this.ToString = ToString;
this.Clear = Clear;
this.Length = Length;
this.Replace = Replace;
this.Remove = Remove;
this.Insert = Insert;
this.GetType = GetType;
// Appends the string representation of a specified object to the end of this instance.
// Parameter["stringToAppend"] - The string to append.
function Append(stringToAppend)
{
h[h.length] = stringToAppend;
}
// Appends the string representation of a specified object to the end of this instance with a carriage return and line feed.
// Parameter["stringToAppend"] - The string to append.
function AppendLine(stringToAppend)
{
h[h.length] = stringToAppend;
h[h.length] = "\r\n";
}
// Converts a StringBuilder to a String.
function ToString()
{
if(!h){ return ""; }
if(h.length<2){ return (h[0])?h[0]:""; }
var a = h.join('');
h = new Array();
h[0] = a;
return a;
}
// Clears the StringBuilder
function Clear()
{
h = new Array();
}
// Gets the StringBuilder Length
function Length()
{
if(!h){return 0;}
if(h.length<2){ return (h[0])?h[0].length:0; }
var a = h.join('');
h = new Array();
h[0] = a;
return a.length;
}
// Replaces all occurrences of a specified character or string in this instance with another specified character or string.
// Parameter["oldValue"] - The string to replace.
// Parameter["newValue"] - The string that replaces oldValue.
// Parameter["caseSensitive"] - True or false for case replace.
// Return Value - A reference to this instance with all instances of oldValue replaced by newValue.
function Replace(oldValue, newValue, caseSensitive)
{
var r = new RegExp(oldValue,(caseSensitive==true)?'g':'gi');
var b = h.join('').replace(r, newValue);
h = new Array();
h[0] = b;
return this;
}
// Removes the specified range of characters from this instance.
// Parameter["startIndex"] - The position where removal begins.
// Parameter["length"] - The number of characters to remove.
// Return Value - A reference to this instance after the excise operation has occurred.
function Remove(startIndex, length)
{
var s = h.join('');
h = new Array();
if(startIndex<1){h[0]=s.substring(length, s.length);}
if(startIndex>s.length){h[0]=s;}
else
{
h[0]=s.substring(0, startIndex);
h[1]=s.substring(startIndex+length, s.length);
}
return this;
}
// Inserts the string representation of a specified object into this instance at a specified character position.
// Parameter["index"] - The position at which to insert.
// Parameter["value"] - The string to insert.
// Return Value - A reference to this instance after the insert operation has occurred.
function Insert(index, value)
{
var s = h.join('');
h = new Array();
if(index<1){h[0]=value; h[1]=s;}
if(index>=s.length){h[0]=s; h[1]=value;}
else
{
h[0]=s.substring(0, index);
h[1]=value;
h[2]=s.substring(index, s.length);
}
return this;
}
// Gets the type
function GetType()
{
return "StringBuilder";
}
};
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- C#中String和StringBuilder的簡(jiǎn)介與區(qū)別
- C#中String StringBuilder StringBuffer類的用法
- 淺析C#中StringBuilder類的高效及與String的對(duì)比
- 在C#及.NET框架中使用StringBuilder類操作字符串的技巧
- C#中StringBuilder類的使用總結(jié)
- C# 利用StringBuilder提升字符串拼接性能的小例子
- C#中StringBuilder用法以及和String的區(qū)別分析
- ASP.NET(C#) String, StringBuilder 與 StringWriter性能比較
- c# StringBuilder.Replace 方法 (Char, Char, Int32, Int32)
- C#使用String和StringBuilder運(yùn)行速度測(cè)試及各自常用方法簡(jiǎn)介
相關(guān)文章
一步快速解決微信小程序中textarea層級(jí)太高遮擋其他組件
這篇文章主要給大家介紹了關(guān)于如何通過(guò)一步快速解決微信小程序中textarea層級(jí)太高遮擋其他組件問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
基于JavaScript實(shí)現(xiàn)驗(yàn)證碼功能
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)驗(yàn)證碼功能的相關(guān)資料2017-04-04
Javascript使用SWFUpload進(jìn)行多文件上傳
本篇文章主要解釋了使用SWFUpload進(jìn)行多文件上傳,這里整理了詳細(xì)的代碼,有需要的可以了解一下。2016-11-11
詳解JavaScript中的強(qiáng)制類型轉(zhuǎn)換
這篇文章主要介紹了JavaScript中的強(qiáng)制類型轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
js操作二級(jí)聯(lián)動(dòng)實(shí)現(xiàn)代碼
網(wǎng)上二級(jí)(多級(jí))聯(lián)動(dòng)的例子也不少,有各種不同的操作方法。我所采用的方法網(wǎng)上也應(yīng)該有的,不過(guò)我還沒(méi)有看到過(guò)。2010-07-07
javascript 圖片上傳預(yù)覽-兼容標(biāo)準(zhǔn)
js圖片上傳預(yù)覽2009-06-06

