JS处理计算公式

lhnlyy520 2011-11-30 05:23:56
B/S中有一个textbox的控件,取得焦点时执行JS脚本代码,获取该控件的值。
例如:此控件的值是页面中A控件和B控件的值相加的和。
传给JS的参数是:A+B(但是这个公式是不固定的,可能会更复杂:(A+B)*C+D)
现在在JS处理时,如何区分算术运算符,如何把运算符和变量分开,如何计算?
...全文
992 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
妮小双 2012-10-31
  • 打赏
  • 举报
回复
公式我也要写个看下能参考不!
lhnlyy520 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 baysos 的回复:]
eval
[/Quote]

var strA = document.getElementById('A').value;
这个“A”是怎么得到的?公式里虽然是有A,但我怎么从公式中分离出这个A来,现在的问题是在这。
baysos 2011-12-01
  • 打赏
  • 举报
回复
eval
lhnlyy520 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bonnibell 的回复:]
取出算术运算符和变量干啥啊,如果必须要取出来,可以单个单个字符的判断,
甚至用js的数组(模拟后进先出栈),来验证括号的匹配


如果单是一个计算,就不用那么复杂了

HTML code



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Ne……
[/Quote]

非常感谢你的答复,但是还有一个问题,你的JS是把A,B,C直接当控件来取值了。
可是现实情况是,你只知道一个表达式,并不知道里面的控件是什么名字
就是在用控件来取值前,还得先从表达式中取出控件名字。
bonnibell 2011-11-30
  • 打赏
  • 举报
回复
为空的判断自己加一下

表达式框里输入形如:A+B/C ,还得判断C是否为零等
bonnibell 2011-11-30
  • 打赏
  • 举报
回复

取出算术运算符和变量干啥啊,如果必须要取出来,可以单个单个字符的判断,
甚至用js的数组(模拟后进先出栈),来验证括号的匹配


如果单是一个计算,就不用那么复杂了


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>

<script language="javascript">
<!--


function getResult()
{

var contdition = document.getElementById('E').value;

var strA = document.getElementById('A').value;
var strB = document.getElementById('B').value;
var strC = document.getElementById('C').value;

eval('var strResult=' +contdition.replace('A',strA).replace('B',strB).replace('C',strC));
document.getElementById('S').value = strResult;
}

// -->
</script>
</HEAD>

<BODY>

A:<input id="A" type="text" name="A" /></br>
B:<input id="B" type="text" name="B" /></br>
C:<input id="C" type="text" name="C" /></br>
表达式:<input id="E" type="text" name="E" /></br>
总数:<input id="S" type="text" name="S" onfocus="getResult();" /></br>

</BODY>
</HTML>

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧