资料
表格
制度
合同
管理
职场
经营
创业
范文
总结
计划
作文
文章
美文
词句
教程
模板
图片
字体
图标
办公
人事
财务
生产
管理资源吧首页
>>>
教程
>>>
编程
>>>
JavaScript教程
>>>
js表达式计算器代码
效果图:
代码:
<img src="/_New/_cj/myeditor/sysimage/space.gif" class="ewebeditor__script" _ewebeditor_fake_tag="script" _ewebeditor_fake_value="%3Cscript%20type%3D%22text%2Fjavascript%22%3E%2F%2F%20%3C!%5BCDATA%5B%20%0D%0AString.prototype.trim%20%3D%20function%20()%20%7B%20%0D%0Areturn%20this.replace(%2F%5E%5Cs%2B%2F%2C%20'').replace(%2F%5Cs%2B%24%2F%2C%20'')%3B%20%0D%0A%7D%3B%20%0D%0Afunction%20calc()%20%7B%20%0D%0Avar%20expression%20%3D%20document.getElementById(%22txtExpression%22).value%3B%20%0D%0Atry%20%7B%20%0D%0Adocument.getElementById(%22txtResult%22).innerText%20%3D'%E8%AE%A1%E7%AE%97%E7%BB%93%E6%9E%9C%E4%B8%BA%3A'%2B%20calcBasic(calcComplex(expression))%3B%20%0D%0A%7D%20catch(e)%20%7B%20%0D%0Adocument.getElementById(%22txtResult%22).innerText%20%3D%20e.message%3B%20%0D%0A%7D%20%0D%0A%0D%0A%7D%20%0D%0Afunction%20calcComplex(complexExpression)%20%7B%20%0D%0Avar%20arr%20%3D%20new%20Array()%3B%20%0D%0Avar%20left%20%3D%200%3B%20%0D%0Avar%20right%20%3D%200%3B%20%0D%0Afor%20(var%20i%20%3D%200%3B%20i%20%3C%20complexExpression.length%3B%20i%2B%2B)%20%7B%20%0D%0Aif%20(complexExpression.charAt(i)%20%3D%3D%20'(')%20%7B%20%0D%0Aarr.push(i)%3B%20%0D%0Aleft%2B%2B%3B%20%0D%0A%7D%20%0D%0Aif%20(complexExpression.charAt(i)%20%3D%3D%20')')%20%7B%20%0D%0Aarr.push(i)%3B%20%0D%0Aright%2B%2B%3B%20%0D%0A%7D%20%0D%0A%7D%20%0D%0Aif%20(left%20!%3D%20right)%20%7B%20%0D%0Athrow%20new%20Error('%E6%8B%AC%E5%8F%B7%E4%B8%8D%E5%8C%B9%E9%85%8D%EF%BC%81'%2C'2')%3B%20%0D%0A%7D%20%0D%0Avar%20brackets%20%3D%20complexExpression.replace(%2F%5B%5E%5C(%7C%5E%5C)%5D%2Fg%2C%20'')%3B%20%0D%0A%0D%0Afor%20(i%20%3D%200%3B%20i%20%3C%20brackets.length%3B%20i%2B%2B)%20%7B%20%0D%0Aif%20(brackets.charAt(i)%20%3D%3D%20%22(%22%20%26%26%20brackets.charAt(i%20%2B%201)%20%3D%3D%20%22)%22)%20%7B%20%0D%0Avar%20simpleExpression%20%3D%20complexExpression.substr(arr%5Bi%5D%20%2B%201%2C%20arr%5Bi%20%2B%201%5D%20-%20arr%5Bi%5D%20-%201)%3B%20%0D%0Aif%20(calcBasic(simpleExpression)%3C0)%20%7B%20%0D%0AcomplexExpression%20%3D%20complexExpression.substr(0%2C%20arr%5Bi%5D)%20%2B%20'%5B'%20%2B%20Math.abs(calcBasic(simpleExpression))%20%2B%20''%20%2B%20complexExpression.substr(arr%5Bi%20%2B%201%5D%20%2B%201)%3B%20%0D%0A%7D%20%0D%0Aelse%20%7B%20%0D%0AcomplexExpression%20%3D%20complexExpression.substr(0%2C%20arr%5Bi%5D)%20%2B%20''%20%2B%20calcBasic(simpleExpression)%20%2B%20''%20%2B%20complexExpression.substr(arr%5Bi%20%2B%201%5D%20%2B%201)%3B%20%0D%0A%7D%20%0D%0AcomplexExpression%3DcalcComplex(complexExpression)%3B%20%0D%0Abreak%3B%20%0D%0A%7D%20%0D%0A%7D%20%0D%0Areturn%20complexExpression%3B%20%0D%0A%7D%20%0D%0Afunction%20calcBasic(baseExpression)%20%7B%20%0D%0Aif%20(baseExpression.charAt(0)%3D%3D'-')%20%7B%20%0D%0AbaseExpression%20%3D%20'%5B'%20%2B%20baseExpression.substr(1)%3B%20%0D%0A%7D%20%0D%0Avar%20constants%20%3D%20baseExpression.trim().replace(%2F%5B%5C*%7C%5C%2F%7C%5C%2B%7C%5C-%5D%2Fg%2C%20'%20').split(%2F%5Cs%2B%2Fg)%3B%20%0D%0Afor%20(var%20index%20in%20constants)%20%7B%20%0D%0A%2F%2F%E5%8F%AA%E7%95%99%E4%B8%8B%E7%AC%A6%E5%8F%B7%20%0D%0AbaseExpression%20%3D%20baseExpression.replace(%2F%5Cs%2B%2Fg%2C%20'').replace(constants%5Bindex%5D%2C%20'')%3B%20%0D%0A%0D%0A%2F%2F%E5%B0%86%E6%8F%90%E5%8F%96%E7%9A%84%E5%B8%B8%E9%87%8F%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%BD%AC%E5%8C%96%E4%B8%BA%E6%95%B0%E5%AD%97%20%0D%0Avar%20item%3B%20%0D%0Aif%20(constants%5Bindex%5D.trim().charAt(0)%3D%3D'%5B')%20%7B%20%0D%0Aitem%20%3D%20parseFloat(constants%5Bindex%5D.trim().replace('%5B'%2C'-'))%3B%20%0D%0A%7D%20%0D%0Aelse%20%7B%20%0D%0Aitem%20%3D%20parseFloat(constants%5Bindex%5D.trim())%3B%20%0D%0A%7D%20%0D%0A%0D%0Aif%20(isNaN(item))%20%7B%20%0D%0Athrow%20new%20Error('%E5%AD%98%E5%9C%A8%E9%9D%9E%E6%B3%95%E7%AC%A6%E5%8F%B7%EF%BC%81'%2C'0')%3B%20%0D%0A%7D%20%0D%0Aelse%20%7B%20%0D%0Aconstants%5Bindex%5D%20%3D%20item%3B%20%0D%0A%7D%20%0D%0A%7D%20%0D%0Aif%20(constants.length%20!%3D%20baseExpression.length%20%2B%201)%20%7B%20%0D%0Athrow%20new%20Error('%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%9C%89%E8%AF%AF%EF%BC%81'%2C'1')%3B%20%0D%0A%7D%20%0D%0A%0D%0Afor%20(var%20i%20%3D%200%3B%20i%20%3C%20baseExpression.length%3B%20i%2B%2B)%20%7B%20%0D%0Aswitch%20(baseExpression.charAt(i))%20%7B%20%0D%0Acase%20'*'%3A%20%0D%0Aconstants.splice(i%2C%202%2C%20constants%5Bi%5D%20*%20constants%5Bi%20%2B%201%5D)%3B%20%0D%0AbaseExpression%20%3D%20baseExpression.replace('*'%2C%20'')%3B%20%0D%0Ai%20-%3D%201%3B%20%0D%0Abreak%3B%20%0D%0Acase%20'%2F'%3A%20%0D%0Aif%20(constants%5Bi%20%2B%201%5D%20%3D%3D%200)%20%7B%20%0D%0Athrow%20new%20Error('%E9%99%A4%E6%95%B0%E4%B8%8D%E8%83%BD%E4%B8%BA0%EF%BC%81')%3B%20%0D%0A%7D%20%0D%0Aconstants.splice(i%2C%202%2C%20constants%5Bi%5D%20%2F%20constants%5Bi%20%2B%201%5D)%3B%20%0D%0AbaseExpression%20%3D%20baseExpression.replace('%2F'%2C%20'')%3B%20%0D%0Ai%20-%3D%201%3B%20%0D%0Abreak%3B%20%0D%0Adefault%3A%20break%3B%20%0D%0A%7D%20%0D%0A%7D%20%0D%0Afor%20(var%20j%20%3D%200%3B%20j%20%3C%20baseExpression.length%3B%20j%2B%2B)%20%7B%20%0D%0Aswitch%20(baseExpression.charAt(j))%20%7B%20%0D%0Acase%20'%2B'%3A%20%0D%0Aconstants.splice(j%2C%202%2C%20constants%5Bj%5D%20%2B%20constants%5Bj%20%2B%201%5D)%3B%20%0D%0AbaseExpression%20%3D%20baseExpression.replace('%2B'%2C%20'')%3B%20%0D%0Aj%20-%3D%201%3B%20%0D%0Abreak%3B%20%0D%0Acase%20'-'%3A%20%0D%0Aconstants.splice(j%2C%202%2C%20constants%5Bj%5D%20-%20constants%5Bj%20%2B%201%5D)%3B%20%0D%0AbaseExpression%20%3D%20baseExpression.replace('-'%2C%20'')%3B%20%0D%0Aj%20-%3D%201%3B%20%0D%0Abreak%3B%20%0D%0Adefault%3A%20break%3B%20%0D%0A%7D%20%0D%0A%7D%20%0D%0A%0D%0Areturn%20constants%5B0%5D%3B%20%0D%0A%7D%20%0D%0A%2F%2F%20%5D%5D%3E%3C%2Fscript%3E"> </p> <div style="text-align: center;"><textarea id="txtExpression" style="width: 90%; height: 200px; overflow-y: visible;"></textarea> <div style="width: 90%; margin: 4px auto; text-align: left;"><input id="btnSubit" type="button" onclick="calc()" value="计算" /> <span id="txtResult"></span></div>
[Ctrl+A 全选 注:
如需引入外部Js需刷新才能执行
]
教程首页
更多教程