快速业务通道

继续表达式求值—支持函数

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-12
ray) {
maxisp = Math.max(maxisp, isp(earray[i]));
}
//从左往右搜索优先级最高的第一个运算符并计算
for (i=0; i if (maxisp>0 && isp(earray[i]) == maxisp) {
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 e = index[i][0];
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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

="Linux下的Vsftpd配置篇" target="_blank">Linux下的Vsftpd配置篇
  • DIV和table页面布局的区别和联系
  • 如何实现二维向量 - 编程入门网
  • 网络营销公司在运营中的策略
  • iBATIS 3内的新特性:将iBATIS用作应用程序内的一种持久框架 - 编程入门网
  • Photoshop绘制高光水晶质感水晶苹果
  • Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

    地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

    电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

    《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号