JavaScript-使用函数、子字符串和大小进行正确的输入验证?
下面的程序是一个简单的加法和减法计算器,我一直在努力保持代码干净和简单,同时避免不好的做法 在validate()函数中,我使用布尔值来判断运算符是否重复 我正在寻找一种类似的方法,但更简单 要求: 没有重复的操作员输入JavaScript-使用函数、子字符串和大小进行正确的输入验证?,javascript,html,validation,input,calculator,Javascript,Html,Validation,Input,Calculator,下面的程序是一个简单的加法和减法计算器,我一直在努力保持代码干净和简单,同时避免不好的做法 在validate()函数中,我使用布尔值来判断运算符是否重复 我正在寻找一种类似的方法,但更简单 要求: 没有重复的操作员输入 var i=-1;var j=-1; 函数ins(val){ i=-1; j=-1; document.getElementById(“txtField”).value+=val; 验证() } 函数plusIns(val){ j++ 如果(j==0){ var str=do
var i=-1;var j=-1;
函数ins(val){
i=-1;
j=-1;
document.getElementById(“txtField”).value+=val;
验证()
}
函数plusIns(val){
j++
如果(j==0){
var str=document.getElementById(“txtField”).value+=val;
}
验证()
}
函数子类(val){
我++
如果(i==0){
var str=document.getElementById(“txtField”).value+=val;
}
验证()
}
函数验证(){
让str=document.getElementById(“txtField”).value;
让size=document.getElementById(“txtField”).value.length-1
设n=str.includes(“-+”);
设m=str.includes(“+-”);
如果(n){
document.getElementById(“txtField”).value=str.substring(0,大小);
}
如果(m){
document.getElementById(“txtField”).value=str.substring(0,大小);
}
}
函数clr(){
document.getElementById(“txtField”)。值=“”
}
函数solve(){
设x=document.getElementById(“txtField”).value
设y=eval(x)
document.getElementById(“txtField”).value=y
}
正文{
背景色:白烟;
文本对齐:居中;
}
添加子计算器(&S)
您可以尝试此最佳做法
函数ins(val){
让str=document.getElementById(“txtField”).value;
让size=document.getElementById(“txtField”).value.length-1;
如果(val!='+'&&val!='-'){
document.getElementById(“txtField”).value+=val
}否则{
如果(尺寸>-1){
if(document.getElementById(“txtField”).value.charAt(大小)!='+'&document.getElementById(“txtField”).value.charAt(大小)!='-'){
document.getElementById(“txtField”).value+=val
}否则{
如果(val=='-'){
if(document.getElementById(“txtField”).value.charAt(size)=='+')){
document.getElementById(“txtField”).value=str.substring(0,size)+val
}
}否则{
if(document.getElementById(“txtField”).value.charAt(size)=='-'){
document.getElementById(“txtField”).value=str.substring(0,size)+val
}
}
}
}
}
}
函数clr(){
document.getElementById(“txtField”).value=“”
}
函数solve(){
设x=document.getElementById(“txtField”).value
设y=eval(x)
document.getElementById(“txtField”).value=y
}
正文{
背景色:白烟;
文本对齐:居中;
}
按CJ添加和细分
感谢您的快速响应,但您能否指出您的代码与给定代码之间的主要差异?为什么这是良好的做法。谢谢与讨论中的代码片段相比,您的代码引入了更多的嵌套,因此我不认为它是最佳实践。另外,代码段中的问题对我来说更具可读性,我更喜欢这个。