JS 를 사용 하여 간이 계산기 실현
요구:입력 한 값 은 숫자 일 뿐 정규 표현 식 을 사용 합 니 다.
onchange():값 변경 시 이벤트 실행
onblur():마우스 이동 시 이벤트 실행
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title> </title>
</head>
<body>
<div style="text-align: center;">
<input type="text" id="1" onkeyup="this.value=this.value.replace(/[^\d]/g,'') " >
<select name="select" id="select">
<option value="null"> </option>
<option value="0">+</option>
<option value="1">-</option>
<option value="2">*</option>
<option value="3">/</option>
</select>
<input type="text" id="2" onkeyup="this.value=this.value.replace(/[^\d]/g,'') ">
=
<input type="text" id="3" onkeyup="this.value=this.value.replace(/[^\d]/g,'') "><br><br>
</div>
<div style="text-align: center;">
<input type="button" id="button"value=" ">
</div>
<script>
function accAdd(arg1,arg2){
var r1,r2,m;
try{
r1=arg1.toString().split(".")[1].length
}catch(e){
r1=0
}
try{
r2=arg2.toString().split(".")[1].length
}catch(e){
r2=0
}
m=Math.pow(10,Math.max(r1,r2))
return (arg1*m+arg2*m)/m
}
Number.prototype.add = function (arg){
return accAdd(arg,this);
}
function Subtr(arg1,arg2){
var r1,r2,m,n;
try{
r1=arg1.toString().split(".")[1].length
}catch(e){
r1=0
}
try{
r2=arg2.toString().split(".")[1].length
}catch(e){
r2=0
}
m=Math.pow(10,Math.max(r1,r2));
// last modify by deeka
//
n=(r1>=r2)?r1:r2;
return ((arg1*m-arg2*m)/m).toFixed(n);
}
function accMul(arg1,arg2) //
{
var m=0,s1=arg1.toString(),s2=arg2.toString();
try{
m+=s1.split(".")[1].length
}catch(e){}
try{
m+=s2.split(".")[1].length
}catch(e){}
return Number(s1.replace(".",""))*Number(s2.replace(".","")) / Math.pow(10,m)
}
// Number mul , 。
Number.prototype.mul = function (arg){
return accMul(arg, this);
}
function accDiv(arg1,arg2){
var t1=0,t2=0,r1,r2;
try{
t1=arg1.toString().split(".")[1].length
}catch(e){}
try{
t2=arg2.toString().split(".")[1].length
}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".",""))
r2=Number(arg2.toString().replace(".",""))
return (r1/r2)*pow(10,t2-t1);
}
}
Number.prototype.div = function (arg){
return accDiv(this, arg);
}
document.getElementById('button').onclick=function(){
var num1 =document.getElementById('1').value;
var num2 =document.getElementById('2').value;
var num3;
var op =document.getElementById('select').value;
switch(op){
case '0':
num3= accAdd(num1,num2);
break;
case '1':
num3= Subtr(num1,num2) ;
break;
case '2':
num3=accMul(num1,num2) ;
break;
case '3':
num3=accDiv(num1,num2) ;
break;
}
document.getElementById('3').value=num3;
}
</script>
</body>
</html>
효과 그림:이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.