<script language=javascript>
var str="asd+fre(1)-"
function ValidRegstr(s){
  var a = s.search(/[+\-*/()](?=(FRE\(\d\)|MAX\(\d\)))(FRE\(\d\)|MAX\(\d\))(?=[+\-*/()])/gi);
  alert(a);
}
ValidRegstr(str)
</script>

解决方案 »

  1.   

    hbhbhbhbhb1021(天外水火(我要多努力)) :
    你回答的还不对啊,若字符串输入为"FRE(2)"或"aa+FRE(2)",仍然提示-1,错误。而这是正确的输入
      

  2.   

    re = /[(*/+-](FRE|MAX)\(\d\)[)*/+-]|$/g;
    a = s.search(re);你的要求有误!
    函数名和变量名前都不能有“)”
    函数式和变量名后都不能有“(”
      

  3.   

    我以为你是特意不要函数在第一位或最后一位,还有你的n只有一位数字?
    <script language=javascript>
    var str="asd+fre(1)"
    function ValidRegstr(s){
      var a = s.search(/([+\-*/()]|(^))(?=(FRE\(\d\)|MAX\(\d\)))(FRE\(\d\)|MAX\(\d\))(?=([+\-*/()]|($)))/gi);
      alert(a);
    }
    ValidRegstr(str)
    </script>
      

  4.   

    hbhbhbhbhb1021(天外水火(我要多努力)) 
    var a = s.search(/([+\-*/()]|(^))(?=(FRE\(\d\)|MAX\(\d\)))(FRE\(\d\)|MAX\(\d\))(?=([+\-*/()]|($)))/gi);
      alert(a);
    这个如果输入FRE(9)MAX(6)也通过啊。实际上只是要输入FRE(9)+MAX(6)才能通过。
      

  5.   

    这个是可以通过,因为里面包含了")MAX(6)"
    上面的方法可以查询里面符合这个格式的字符串,如果楼主是要验证,最好别用search函数
    验证的话要把所有格式都列出来,比如里面是否有常量数字,有变量,还是只有这两个函数等等