zoukankan      html  css  js  c++  java
  • js实现文本框支持加减运算的方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>支持加减运算的文本框</title>
    <meta http-equiv="content-type" content="text/html;charset=gb2312">
    <style type="text/css">
    body{color:#000;font-size:14px;font-family:Verdana,Arial,Helvetica,sans-serif,"宋体";}
    input{border-style:solid;border-color:#868275;background-color:#f9f9f9;border-1px;color:#505050;vertical-align:middle;}
    </style>
    <script language=javascript>
    function FloatAdd(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
    }
    function FloatSubtr(arg1,arg2){
    return FloatAdd(arg1,-arg2);
    }
    function IsMoney(Money){
    if(/^[d|+|.|-]+$/.test(Money)) return true;
    return false;
    }
    function result(){
    str=document.getElementById("buy").value;
    if(!(IsMoney(str))){
    document.getElementById("amount").innerHTML ="无效金额";
    return false;
    }
    var len=str.length,money=0,Num=0;
    var NumStr="",ctrlflag="x",cflag=0;
    for(var i=0;i<len; i++){
    c= str.charAt(i);
    if((c=="+")||(c=="-")){
    if(i+1<len){
    if ((str.charAt(i+1)=="+")||(str.charAt(i+1)=="-")) continue;
    }
    if((NumStr!="")&&(isNaN(NumStr))){
    if(isNaN(NumStr)){
    document.getElementById("amount").innerHTML ="输入无效金额";
    return false;
    }
    }
    if(NumStr!=""){
    //alert("i:"+i+"NumStr:"+NumStr);
    if ((ctrlflag=="+")||(ctrlflag=="x")){
    Num=parseFloat(NumStr);
    //alert(ctrlflag+"money:"+money+"Num:"+Num);
    money=FloatAdd(money,Num);
    NumStr="";
    Num=0;
    ctrlflag=c;
    }
    else{
    //alert(money+"里面减了"+NumStr);
    Num=parseFloat(NumStr);
    money=FloatSubtr(money,Num);
    NumStr="";
    Num=0;
    ctrlflag=c;
    }
    }
    else{
    ctrlflag=c;
    }
    continue;
    }
    else{
    NumStr=NumStr+""+c;
    }
    }
    if((NumStr!="")&&(isNaN(NumStr))){
    if (isNaN(NumStr)){
    document.getElementById("amount").innerHTML ="无效金额"+NumStr;
    return false;
    }
    }
    if((ctrlflag=="-")&&(NumStr!="")){
    Num=parseFloat(NumStr);
    money=FloatSubtr(money,Num);
    }
    if(((ctrlflag=="+")||(ctrlflag=="x"))&&((NumStr!=""))){
    Num=parseFloat(NumStr);
    money=FloatAdd(money,Num);
    }
    document.getElementById("amount").innerHTML =money;
    }
    </script>
    </head>
    <body>
    请输入加减计算式:<input id="buy" name="buy" maxlength="30" type="text" onkeyup="javascript:result();">
    <span id="amount"></span>
    </body>
    </html>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>支持加减运算的文本框</title>
    <meta http-equiv="content-type" content="text/html;charset=gb2312">
    <style type="text/css">
    body{color:#000;font-size:14px;font-family:Verdana,Arial,Helvetica,sans-serif,"宋体";}
    input{border-style:solid;border-color:#868275;background-color:#f9f9f9;border-1px;color:#505050;vertical-align:middle;}
    </style>
    <script language=javascript>
    function FloatAdd(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
    }
    function FloatSubtr(arg1,arg2){
    return FloatAdd(arg1,-arg2);
    }
    function IsMoney(Money){
    if(/^[d|+|.|-]+$/.test(Money)) return true;
    return false;
    }
    function result(){
    str=document.getElementById("buy").value;
    if(!(IsMoney(str))){
    document.getElementById("amount").innerHTML ="无效金额";
    return false;
    }
    var len=str.length,money=0,Num=0;
    var NumStr="",ctrlflag="x",cflag=0;
    for(var i=0;i<len; i++){
    c= str.charAt(i);
    if((c=="+")||(c=="-")){
    if(i+1<len){
    if ((str.charAt(i+1)=="+")||(str.charAt(i+1)=="-")) continue;
    }
    if((NumStr!="")&&(isNaN(NumStr))){
    if(isNaN(NumStr)){
    document.getElementById("amount").innerHTML ="输入无效金额";
    return false;
    }
    }
    if(NumStr!=""){
    //alert("i:"+i+"NumStr:"+NumStr);
    if ((ctrlflag=="+")||(ctrlflag=="x")){
    Num=parseFloat(NumStr);
    //alert(ctrlflag+"money:"+money+"Num:"+Num);
    money=FloatAdd(money,Num);
    NumStr="";
    Num=0;
    ctrlflag=c;
    }
    else{
    //alert(money+"里面减了"+NumStr);
    Num=parseFloat(NumStr);
    money=FloatSubtr(money,Num);
    NumStr="";
    Num=0;
    ctrlflag=c;
    }
    }
    else{
    ctrlflag=c;
    }
    continue;
    }
    else{
    NumStr=NumStr+""+c;
    }
    }
    if((NumStr!="")&&(isNaN(NumStr))){
    if (isNaN(NumStr)){
    document.getElementById("amount").innerHTML ="无效金额"+NumStr;
    return false;
    }
    }
    if((ctrlflag=="-")&&(NumStr!="")){
    Num=parseFloat(NumStr);
    money=FloatSubtr(money,Num);
    }
    if(((ctrlflag=="+")||(ctrlflag=="x"))&&((NumStr!=""))){
    Num=parseFloat(NumStr);
    money=FloatAdd(money,Num);
    }
    document.getElementById("amount").innerHTML =money;
    }
    </script>
    </head>
    <body>
    请输入加减计算式:<input id="buy" name="buy" maxlength="30" type="text" onkeyup="javascript:result();">
    <span id="amount"></span>
    </body>
    </html>

  • 相关阅读:
    如何将本地代码上传到GitHub
    《剑指offer》JavaScript版19-21题
    《剑指offer》JavaScript版16-18题
    《剑指offer》JavaScript版13-15题
    蘑菇街(前端1面)
    《二十二》观后感
    前端面试题(2)
    《深入理解ES6》之Promise
    HDU 4939 Stupid Tower Defense (2014 Multi-University Training Contest 7)
    HDU 4940 Destroy Transportation system(2014 Multi-University Training Contest 7)
  • 原文地址:https://www.cnblogs.com/apolloren/p/7624504.html
Copyright © 2011-2022 走看看