Js简单判断四则运算是否可用

本文探讨了JavaScript表达式的安全评估方法,通过使用try-catch结构、正则表达式和eval函数,确保代码安全执行。包括表达式验证、非法字符过滤及执行前的安全检查。
function test(s){ 
    try{
        return !isNaN(eval("("+s+")"));
    }catch(e){
        return false;
    }
}
alert(test("1+6*(2+(3-1)/1+(9-5*1))"));
//--------------------------------------------------------------------------------------
<script>
var str = "1+6*(2+(3-1)/1+(9-5*1))";
try{
    eval("var ret = "+str);
    if(ret!=Infinity){
        alert("right");
    }else{
        alert("wrong");
    }
}catch(e){
    alert("wrong");
}
</script>
//--------------------------------------------------------------------------------------
function test(s){
    var reg=/[\d\.\+\-\*\/\(\)]+/;
    try{
        return ret.test(s)&&!isNaN(eval("("+s+")"));
    }catch(e){
        return false;
    }
}
alert(test("1+6*(2+(3-1)/1+(9-5*1))"));
//--------------------------------------------------------------------------------------
<script>
var s = '1+6*(2+(3-1)/1+(9-5*1))';
if(s.match(/[^\+\-\*\/0-9()]/))
{
    alert('illegal!')
}
else
{
    try
    {
        alert(eval(s));
    }
    catch(e)
    {
        alert('illegal')
    }
}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值