分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

js实现文本框支持加减运算的方法

发布时间:2023-09-06 01:07责任编辑:林大明关键词: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-width: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-width: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>

js实现文本框支持加减运算的方法

原文地址:http://www.cnblogs.com/apolloren/p/7624504.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved