[jvs] 자바스크립트에서 Trim, Ltrim, Rtrim, ReplaceAll 함수 만들어 사용하기 JavaScript_VBScript

http://blog.daum.net/riversnails/8000431
자바스크립트 trim(), replaceAll() | 웹페이지 2008.11.24 20:03 왕우렁이
공개 통하는 블로그 비공개 http://blog.daum.net/riversnails/8000431

// ltrim, rtrim, trim
String.prototype.ltrim = function()
{
var re = /\s*((\S+\s*)*)/;
return this.replace(re, "$1");
}
String.prototype.rtrim = function()
{
var re = /((\s*\S+)*)\s*/;
return this.replace(re, "$1");
}
String.prototype.trim = function()
{
return this.ltrim().rtrim();
}
String.prototype.replaceAll = function(str1, str2)
{
var temp = this;
while (1)
{
if( temp.indexOf(str1) != -1 )
temp = temp.replace(str1, str2);
else
break;
}
return temp;

}

--------------------------------------------
위의 스크랩 내용을 테스트 해보았다.

replaceAll 사용방법 (선택한 문자를 지정한 문자로 교체하기)
아래의 예시는 빈공백을 없애는 경우이다.
v1 = form1.box1.value;
v2 = v1.replaceAll(" ","");
또는 v2 = form1.box1.value.replaceAll(" ","");
document.form1.box1.value = v2;

일반적으로, replace 라는 명령이 있긴 하지만,
아래의 테스트에서 처럼 실행하면
v1 = "AB-C";
v2 = v1.replace("B","");
document.write ("test:" + v2);
출력값은
test:A-C
가 된다.
즉, 딱 한번만 실행된다는 것이다.
따라서, replaceAll 이라는 함수를 만들어서,
한번이 아니라, 바꾸려는 문자가 없을때까지 무한반복을 시키는 것이다.
위의 프로토타입 형태를 자바스크립트 function 형태로 바꾸면 아래와 같다.
function func_replaceall(val,sorc1,sorc2){
while (1)
{
if(val.indexOf(sorc1) != -1)
val = val.replace(sorc1,sorc2);
else
break;
}
return val;
}
v1 = "AB-C";
vx = func_replaceall(v1,"B","");
alert(vx);
이렇게 해도 똑같은 결과를 얻을 수 있다.

덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.


통계 위젯 (화이트)

114654
4273
10471046

google_myblogSearch_side

▷검색어

Flag Counter style2