<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>
re = /[(*/+-](FRE|MAX)\(\d\)[)*/+-]|$/g; a = s.search(re);你的要求有误! 函数名和变量名前都不能有“)” 函数式和变量名后都不能有“(”
我以为你是特意不要函数在第一位或最后一位,还有你的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>
hbhbhbhbhb1021(天外水火(我要多努力)) var a = s.search(/([+\-*/()]|(^))(?=(FRE\(\d\)|MAX\(\d\)))(FRE\(\d\)|MAX\(\d\))(?=([+\-*/()]|($)))/gi); alert(a); 这个如果输入FRE(9)MAX(6)也通过啊。实际上只是要输入FRE(9)+MAX(6)才能通过。
你回答的还不对啊,若字符串输入为"FRE(2)"或"aa+FRE(2)",仍然提示-1,错误。而这是正确的输入
a = s.search(re);你的要求有误!
函数名和变量名前都不能有“)”
函数式和变量名后都不能有“(”
<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>
var a = s.search(/([+\-*/()]|(^))(?=(FRE\(\d\)|MAX\(\d\)))(FRE\(\d\)|MAX\(\d\))(?=([+\-*/()]|($)))/gi);
alert(a);
这个如果输入FRE(9)MAX(6)也通过啊。实际上只是要输入FRE(9)+MAX(6)才能通过。
上面的方法可以查询里面符合这个格式的字符串,如果楼主是要验证,最好别用search函数
验证的话要把所有格式都列出来,比如里面是否有常量数字,有变量,还是只有这两个函数等等