1,我现在且一个公式 var gs1='(1)==(2)+(4)+(9)+(10)+(12)';
var gs2='(4)==(5)+(6)+(7)';
var gs3='(15)==(16)+(18)+(23)+(24)+(26)';
var gs4='(18)==(19)+(20)+(21)';这四个公式都是字符串,我写一方法,里有有两个参数,第一个参数是公式(gs1),第二是参数是数组(里面包括1,2,4,9,10,12这个数值)函数功用实现 传进去值通过公式进行运算,返加正确还是错误。function getValue(gs,arr)
{
//计算成功,返回正确
//否则返回错误}大家帮我想想,怎么写。
var gs2='(4)==(5)+(6)+(7)';
var gs3='(15)==(16)+(18)+(23)+(24)+(26)';
var gs4='(18)==(19)+(20)+(21)';这四个公式都是字符串,我写一方法,里有有两个参数,第一个参数是公式(gs1),第二是参数是数组(里面包括1,2,4,9,10,12这个数值)函数功用实现 传进去值通过公式进行运算,返加正确还是错误。function getValue(gs,arr)
{
//计算成功,返回正确
//否则返回错误}大家帮我想想,怎么写。
解决方案 »
- 100分请高手帮我解决函数调用的问题
- jquery语言下拉菜单--(解决滑动菜单晃动问题)
- js中如果实现图片转换的问题
- JS控制鼠标经过颜色
- 怎样用js实现对服务器控件(checkbox)的全选
- 高分求救:
- 遇到高难度的东西 高手们请帮忙网页上表格(在运行而非设计状态下)怎样让客户自己选择充填数据库的字段 我这里很急老板都骂红眼了他哪
- 关于DHTML Editing control Object的一个问题(在线等待)
- 急求javascript语言手册,CHM版那本?谢谢。
- 急求:瀑布流masonry结合infinitescroll 的div重叠的问题
- JS 多文件上传 怎么获得文件的本地路径
- 谁会新浪微博回复那效果,文本域的高度会随着输入的字自动撑开???????
var formula = function (exp, args) {
if (exp.match(/^\(\d+\)==\(\d+\)([\+\-\*\/]\(\d+\))*$/)) {
for (var i = 0; i < args.length; i++) {
exp = exp.replace('(' + i + ')', args[i]);
} exp = exp.replace(/[\+\-\*\/]?\(\d+\)[\+\-\*\/]?/g, '');
return eval('(' + exp + ')');
}
else {
throw {
name: 'Argument error',
message: 'Expression resolve failed'
}
}
};try {
//var str = "(2)==(0)+(1)", args = [1, 2, 3];
var str = "(0)==(1)-(2)*(4)", args = [-62, 2, 4, 8, 16];
alert(formula(str, args));
}
catch (ex) {
alert(ex.message);
} 两个结果都为true,我的表达式学的不好,出疏漏还请坛友改进。
exp = exp.replace(/[\+\-\*\/]?\(\d+\)[\+\-\*\/]?/g, '');
改为下面方式
exp = exp.replace(/([\+\-\*]\(\d+\))|(\(\d+\)[\+\-\*])/g, '');
exp = exp.replace(/([\+\-\*\/]\(\d+\))|(\(\d+\)[\+\-\*\/])/g, '');