效果:
打开微信开发者工具,新建小程序
打开app.json设置顶部的标题和颜色
由于小程序不支持JavaScript的一些函数,比如evel(),所以代码变得复杂很多。
pages\index\index.js的代码:
Page({
data: {
expression:"",
result:"",
class1:"view5",
class2:"view6",
},
bindViewTap(event) {
if(event.target.dataset.value==="C"){
//按键C
this.setData({
expression: "",
result:"",
})
return;
}else if(event.target.dataset.value==="《X"){
//按键《X
if(this.data.expression[this.data.expression.length-2]==="E"){
this.setData({
expression: this.data.expression.substring(0,this.data.expression.length-2),
})
}else{
this.setData({
expression: this.data.expression.substring(0,this.data.expression.length-1),
})
}
}else if(event.target.dataset.value==="="){
//按键=
if(this.data.result==="")return;
this.setData({
class1: "view5 view7",
class2: "view6 view5",
})
setTimeout(()=>{
this.setData({
class1: "view5 view8",
class2: "view6 view8",
expression:this.data.result,
result:"",
});
},400);
return;
}else if(event.target.dataset.value==="."){
//按键.
if(/\.$|\.\d+$/.test(this.data.expression));
else if(/[%÷×\-\+]$|^$/.test(this.data.expression)){
this.setData({
expression: this.data.expression+"0."
})
}else if(/\d+$/.test(this.data.expression)){
this.setData({
expression: this.data.expression+"."
})
}
}else if(event.target.dataset.value==="%"){
//按键%
if(/\d+$/.test(this.data.expression)){
this.setData({
expression: this.data.expression+event.target.dataset.value
})
}else if(this.data.expression===""){
this.setData({
expression: "0%"
})
}else if(/\D+$/.test(this.data.expression)){
this.setData({
expression: this.data.expression.