不支持单非操作
例如:a&(b&c)&(!d)是正确的格式
      !a  和 ((a&B)|c 为不正确的格式
不明白你的意思! 什么叫不支持单非操作啊?

解决方案 »

  1.   

    我用正则表达式模拟堆栈写了一个,你看可以不
    function checkExp(exp){
    if(exp.match(/^\s*(\(\s*!?\s*[a-zA-Z]\)|!?\s*[a-zA-Z])\s*$/)) return false;
    exp=exp.replace(/\s*(\(\s*!?\s*[a-zA-Z]\)|!?\s*[a-zA-Z])\s*/g,"@");
    var temp=exp;
    while(temp!="@"){
    exp=temp;
    temp=temp.replace(/\s*(\(\s*!?\s*[@]\)|!?\s*[@])\s*/g,"@");
    temp=temp.replace(/\s*[@]\s*&\s*[@]\s*/g,"@");
    temp=temp.replace(/\s*[@]\s*\|\s*[@]\s*/g,"@");
    if(temp==exp) break;
    }
    exp=temp;
    if(exp=="@") return true;
    else return false;
    }
      

  2.   

    好象不行,格式一般为:
    (fdsa & fds)| (d测试 | fds) | !dfsa像这样的应该是不正确的格式 gbce (fd)f fds & f&!d ,这和验证程序差不多,
    gbce和(fd)都是字符串,则二者应该有符号连接起来
    可以在帮我看看吗?