웹상에서 입력받거나 파라미터로 받은 문자열의 특정부분을 다른 문자로 치환해 보기로 했다.
조건은..
1) 반복문을 쓰지 않고,
2) 입력된 총 문자열의 뒤에서 3번째 부터 마지막까지,
3) 치환될 문자는 라디오 버튼으로 입력받거나 고정으로 주어진다 .
다른 좋은 방법도 많고 쓸일이 있을까 싶지만, 재미니까..
1. HTML
<div>
<input type=text id=in value='' /><br/>
@<input type=radio id=rin value='@' /> |
$<input type=radio id=rin value='$' /> |
*<input type=radio id=rin value='*' /><br/>
</div>
<button onclick='test()'>입 력</button>
2. SCRIPT
function repl0(a, b, c){ // 치환할 문자를 입력받는 경우.
var num = a.length;
if(num > c){
// alert(a.substring((num - num) + c + " | " + (((num + 1) - num) + c)));
var mun = a.replace(a.substring((num - num) + c, (((num + 1) - num) + c)), b);
// alert("mun : " + mun + ", c : " + c);
c++;
return repl0(mun, b, c);
}
return a;
}
function repl1(a, b){ // 치환할 문자가 정해진 경우.
if(a.length > b.length){
b = b + "*"; // 치환될 문자가 '*'로 고정.
return repl1(a, b);
}
return b;
}
function test(){
var p = /[a-zA-Z0-9]/; // 처음에는 substring과 패턴을 이용해서 만들어볼까 하다가 중간에 일이 있어서.. 다음으로..
var mun = document.getElementById("in").value;
var spm = document.getElementById("rin").value;
var a = mun.length;
var a1 = mun.substring(0, a - 3);
var a2 = mun.substring(a - 3, a);
var rep = repl0(a2, spm, 0);
alert(a1 + rep);
alert(a1 + repl1(a2, ""));
}
3-1. RUN
치환될 문자를 선택하는 경우.
3-2. RUN
치환될 문자가 고정된 경우.
'course > web' 카테고리의 다른 글
[자바스크립트] 배열정렬 및 join (0) | 2016.05.30 |
---|---|
[펌] WSDL정의및 구조분석 (0) | 2014.03.24 |
[펌] 초보 Java 웹 개발자들을 위한 학습 로드맵 (0) | 2012.06.08 |