JavaScript的计算器功能开发


视频加载中...

let catching = '';//全局变量

//click事件,获取相关元素

document.getElementById('p3').addEventListener('click', function (e) {

let num = e.target.innerText;

determine(num);

})

//分流函数

function determine(content) {

let receive = content;

if (!(receive.match(/["-","+","×","÷",".","0","00","del","C","="]/))) {

again(receive);//【1-9】的输入

} else if ((receive.match(/^["-","+","×","÷"]$/))) {

drop(receive);//加减乘除的正则

} else if ((receive.match(/^["0"]$/))) {

zero(receive);//0的正则

} else if ((receive.match(/^["."]$/))) {

repeat(receive);//点的正则

} else if ((receive == '00')) {

doublezero(receive);//双00的正则

} else if(receive == 'del'){

dele();//删除函数

}else if(receive == '='){

display();//计算函数

}else if(receive.length > 4){//放置p3内容输入

return

}else{

location.reload(); //C重置键

}

}

function again() {

let receive = Array.prototype.shift.apply(arguments);

document.getElementById('p2').innerHTML = catching += receive;

}

function drop(number) {

const arr = [];

let receive = number;

let module = document.getElementById('p2').innerText;

if (module[module.length - 1].match(/["-","+","×","÷"]/)) {

for (let i = 0; i < module.length; i++) {

arr.push(module[i]);

}

arr.pop();

arr.push(receive);

document.getElementById('p2').innerHTML = arr.join('');

} else if (module.length == 1 && module == '0') {

document.getElementById('p2').innerHTML = '';

catching = '';

document.getElementById('p2').innerHTML = catching += '0' + receive;

} else {

document.getElementById('p2').innerHTML = catching += receive;

}

}

function zero(number) {

let receive = number;

let module = document.getElementById('p2').innerText;

if (module.length == 1 && module == '0') {

return

} else if(module.length > 1) {

if (module[module.length - 2].match(/[-+×]/g) && module[module.length - 1].match(/["0"]/g)){

return

}else if((module[module.length - 1].match(/["÷"]/g))&& receive == '0'){

alert('除数不能为零');

location.reload();

}else{

document.getElementById('p2').innerHTML = catching += receive;

}

} else{

document.getElementById('p2').innerHTML = catching += receive;

}

}



function repeat(number) {

let receive = number;

let module = document.getElementById('p2').innerText;

if (module.length == 1 && module == '0') {

document.getElementById('p2').innerHTML = catching += '0' + receive;

} else {

let num = (module.replace(/[-+×÷]/g, '-').split('-')[(module.replace(/[-+×÷]/g, '-').split('-')).length - 1])

if (num.match(/['.']/)) {

return

} else if (module[module.length - 1].match(/[-+×÷]/g)) {

document.getElementById('p2').innerHTML = catching += '0' + receive;

} else {

document.getElementById('p2').innerHTML = catching += receive;

}

}

}



function doublezero(number) {

let receive = number;

let module = document.getElementById('p2').innerText;

if (module.length == 1 && module == '0') {

return

} else if (module[module.length - 1].match(/[-+×]/g)) {

document.getElementById('p2').innerHTML = catching += '0';

} else if (module[module.length - 1].match(/["÷"]/g) && receive == '00') {

alert('除数不能为零');

location.reload();

} else {

if (module.length > 1) {

if (module[module.length - 2].match(/[-+×]/g) && (module[module.length - 1].match(/[0]/g))) {

return

} else {

document.getElementById('p2').innerHTML = catching += receive;

}

}else{

document.getElementById('p2').innerHTML = catching += receive;

}

}

}


function dele(){

const arr = [];

let module = document.getElementById('p2').innerText;

for(let i = 0;i

arr.push(module[i]);

}

arr.pop();

catching = '';

document.getElementById('p2').innerHTML = '';

if(module.length == 1){

document.getElementById('p2').innerHTML = 0;

}else{

document.getElementById('p2').innerHTML = arr.join('');

}

}


function display() {

let module = document.getElementById('p2').innerText;

const arr = new Array();

for (let i = 0; i < module.length; i++) {

if (module[i] == '-') {

arr.push('-');

} else if (module[i] == '+') {

arr.push('+');

} else if (module[i] == '×') {

arr.push('*');

} else if (module[i] == '÷') {

arr.push('/');

} else {

arr.push(module[i]);

}

}

document.getElementById('p2').innerHTML = '';

catching = '';

document.getElementById('p2').innerHTML = eval(arr.join(''));

catching = eval(arr.join(''));

}

展开阅读全文

页面更新:2024-03-03

标签:除数   加减乘除   正则   计算器   函数   元素   事件   功能   内容   视频

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top