继续表达式求值—支持函数
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-12
ray) { maxisp = Math.max(maxisp, isp(earray[i])); } //从左往右搜索优先级最高的第一个运算符并计算 for (i=0; i var va = [earray[i-1], earray[i+1]]; earray.splice(i-1, 3, func(earray[i], va)); break; } } } return getNum(earray[0]); } //分解无括号无逗号表达式字串 function toArray0(estr, ostr) { ostr = ostr.split(","); var index = [], i, temp; //搜索表达式字串中的所有运算符并记录其位置和长度 for (i in ostr) { temp = -1; while ((temp=estr.indexOf(ostr[i], temp+1)) != -1) { if (!(ostr[i] == "-" && temp == 0)) { var L = index.length; index[L] = []; index[L][0] = temp; index[L][1] = ostr[i].length; } } } function compareFunction(A, B) { return A[0]>B[0] ? 1 : A[0] } index.sort(compareFunction); temp = estr; var s = 0, e; estr = []; //将字串分解为元素并按顺序存储到数组里 for (i=0; i estr.push(temp.slice(s, e)); s = e+index[i][1]; estr.push(temp.slice(e, s)); } estr.push(temp.slice(s)); return estr; } //=============测试============ var m = 20; var n = 4; var x = 100; var y = 3; var estr = "max(2,min(3,4))-sin(30)+m*n+m/n"; var TF = new TextFormat(); TF.align = "center"; this.createTextField("hello", 1, 0, 25, 400, 20); with (hello) { type = "dynamic"; selectable = false; setNewTextFormat(TF); text = "输入表达式后按ENTER开始计算"; } this.createTextField("in_out", 2, 2, 50, 396, 20); with (in_out) { type = "input"; border = true; restrict = "A-Za-z0-9+*/%()=.,\\-\\^"; setNewTextFormat(TF); in_out.text = estr+"="+toNum2(estr, ostr, fstr); } function out() { var estr = in_out.text; var e = estr.lastIndexOf("="); if (e == -1) { e = estr.length; } estr = estr.slice(0, e); in_out.text = estr+"="+toNum2(estr, ostr, fstr); } this.onMouseUp = function() { Selection.setSelection(0, in_out.length); }; in_out.onKillFocus = out; var myListener = new Object(); Key.addListener(myListener); myListener.onKeyDown = function() { if (Key.isDown(Key.ENTER)) { out(); } }; new _jh7086(); 关键词: |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
上一篇: 创建一个Flash站点的十大技巧下一篇: Flex组件篇:DateChooser
关于继续表达式求值—支持函数的所有评论