<script>
function getOpPrec(op) {
switch(op) {
case '*': case '/':
return 5;
case '+': case '-':
return 3;
case '(':
return 1;
}
}
function whoPrecOp(op1, op2) {
var op1Prec = getOpPrec(op1), op2Prec = getOpPrec(op2);
if (op1Prec > op2Prec)
return 1;
else if (op1Prec < op2Prec)
return -1;
else
return 0;
}
function postfix(exp) {
var dst = [], src = [], op = [],
src = exp.replace(' ','').match(/[\d\.]+|[+\-*()/]/g);
while (src.length) {
var tok = src.shift();
if (!isNaN(tok)) {
dst.push(tok);
} else {
switch(tok) {
case '(':
op.push(tok);
break;
case ')':
while(1) {
var popOp = op.pop();
if (popOp == '(')
break;
dst.push(popOp);
}
break;
case '+': case '-':
case '*': case '/':
while (op.length && whoPrecOp(op[op.length-1], tok) > 0)
dst.push(op.pop());
op.push(tok);
break;
}
}
}
while (op.length)
dst.push(op.pop());
return dst;
}
function evalExp(exp) {
var dst = [], op1, op2;
while (exp.length) {
var tok = exp.shift();
if (!isNaN(tok))
dst.push(tok);
else {
op2 = Number(dst.pop());
op1 = Number(dst.pop());
switch (tok) {
case '+':
dst.push(op1 + op2);
break;
case '-':
dst.push(op1 - op2);
break;
case '*':
dst.push(op1 * op2);
break;
case '/':
dst.push(op1 / op2);
break;
}
}
}
return dst;
}
function cal(src) {
document.getElementById('result').value = evalExp(postfix(src));
}
</script>
입력 <input type="text" id="input" name="src" value="" onblur="cal(this.value)" /> =
결과 <input id="result" type="text" name="result" size="10" value="" />
게시글 목록
| 번호 | 제목 |
|---|---|
| 12307 |
JavaScript
테이블 각 row 마우스오버시 색깔바꾸기 입니다.
|
| 12306 |
JavaScript
png 24비트 투명처리하기 입니다.
|
| 12305 |
JavaScript
full-down메뉴 자바스크립트 입니다.
|
| 12304 |
JavaScript
iframe사용시 높이 자동 조정하기 입니다.
|
| 12303 |
JavaScript
계산기
현재글
|
| 12302 |
JavaScript
숫자를 한글로 변환하기 입니다.
|
| 12301 |
JavaScript
아이프레임 자동으로 늘어나는 자바 스크립트 입니다.
|
| 12300 |
JavaScript
끊기지 않는 배너 롤링 입니다.
|
| 12299 |
기타
랜섬에 당한 화일 복구
|
| 12298 |
JavaScript
id값 변수명으로 치환 예제 자바스크립트 입니다.
|
| 12297 |
JavaScript
상태바의 링크 주소 감추기 입니다.
|
| 12296 |
JavaScript
가짜 카운터 달기 입니다.
|
| 12295 |
JavaScript
홈에 머문시간을 제목표시줄과 상태바에 실시간으로 알려주기 입니다.
|
| 12294 |
JavaScript
prompt 와 alert 응용 자바스크립트 예제 입니다.
|
| 12293 |
JavaScript
prompt 와 alert 간단한 자바스크립트 예제 입니다.
|
| 12292 |
jQuery
간단한 탭 제이쿼리
|
| 12291 |
jQuery
간단한 셀렉트 드롭다운 제이쿼리
|
| 12290 |
JavaScript
문서내 이미지갯수 출력하기 입니다.
|
| 12289 |
JavaScript
내용 복사해서 붙어넣기 하면 출처 따라오는 자바스크립트입니다.
|
| 12288 |
JavaScript
팝업창 지정한 시간대에 예약 열기 입니다.
|
| 12287 |
JavaScript
접속때마다 음악 다르게 나오기 입니다.
|
| 12286 |
JavaScript
자동 스크롤 메뉴 관련 입니다.
|
| 12285 |
JavaScript
이 브라우저로 몇페이지나 보았나 확인하기 입니다.
|
| 12284 |
JavaScript
사용자 브라우저의 펄러그인 목록 출력하기 입니다.
|
| 12283 |
JavaScript
상태표시줄 제어 + 간단한 복사 제어 하기 입니다.
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기