자바스크립트에서 문자열을 합치는 방법 글을 읽고 조금 변경해서 올려봅니다.
<script language="JavaScript">
<!--
var StringBuilder = function(){
this.buffer = new Array();
}
//순서대로 문자열을 추가한다.
StringBuilder.prototype.Append = function( strValue ) {
this.buffer[this.buffer.length] = strValue;
// this.buffer.push( strValue ); //IE5.5 NS4
}
// 문자열의 형식을 지정해서 추가한다.
StringBuilder.prototype.AppendFormat = function()
{
var count = arguments.length;
if( count < 2 ) return "";
var strValue = arguments[0];
for(var i=1; i<count; i++)
strValue = strValue.replace("{"+ (i-1) + "}", arguments[i] );
this.buffer[this.buffer.length] = strValue;
}
// 해당하는 위치에 문자열을 추가한다. (문자위치가 아님);
StringBuilder.prototype.Insert = function( idx, strValue ) {
this.buffer.splice( idx, 0, strValue ); //IE5.5 NS4
}
// 해당문자열을 새로운 문자열로 바꾼다.
// (배열방 단위로 바꾸므로 배열방 사이에 낀 문자열은 바꾸지 않음)
StringBuilder.prototype.Replace = function( from, to ) {
for( var i=this.buffer.length-1; i>=0; i--)
this.buffer[i] = this.buffer[i].replace(new RegExp(from, "g"), to); //IE4 NS3
}
// 문자열로 반환한다.
StringBuilder.prototype.ToString = function() {
return this.buffer.join(""); //IE4 NS3
}
/* 테스트해봅시다! */
var sb = new StringBuilder();
sb.Append("Hello! 안녕하세요! <br>");
sb.AppendFormat("내이름은 {0}, 나이는 {1} <br>", "이세영", "28");
sb.Append("Hello! HELLO! <br>");
sb.Insert(2, "**2번째줄에 넣으세요***<br>");
sb.Replace("Hello", "Hi");
document.write( sb.ToString() );
//-->
</script>