本帖最后由 xym_loveit 于 2011-08-15 16:34:06 编辑

解决方案 »

  1.   

    首先回答你的问题,var v='[1.1.1.]*0.8+[1.3.1.]、[1.3.1.]+[1.1.1.]*0.8、[1.3.1.]+0.8*[1.1.1.]';
    v=v.match(/(?:(?:0\.)?\d\*)?\[(?:\d\.){0,6}\](?:\*(?:0\.)?\d)?\+(?:(?:0\.)?\d\*)?\[(?:\d\.){0,6}\](?:\*(?:0\.)?\d)?/g)
    console.log(v)现在用的是match,如果你只要用来判断可改为test,
    这个正侧可以匹配0.8*[1.1.1.]*0.8可能不是你想要的。还有,你让用户输入这么复杂的公式,很不合理,在用户体验方面绝对不会让你过,你这就好比在google输入框让用户来输入SQL语句。希望你能看懂我在说什么。
      

  2.   

    ps:由于确实是本人发帖混乱,各位看不懂神马意思,下面引用一段图片
    假如现在我们想求高一二班的同学的总成绩的80%与高三二班的同学成绩之和那么根据本系统规定的公式规则应该:[1.1.1.]*0.8+[1.3.2.]现在用户可以这样输入:[1.1.1.]*0.8+[1.3.2.]、[1.3.2.]+[1.1.1.]*0.8、[1.3.2.]+0.8*[1.1.1.]等......怎么能在用户输入之后判断其格式的规范性(格式校验)?用户输入框为简单文本输入框:<input type="text">,求验证机制!最好为正则表达式!目前只考虑s四则简单运算(此运算公式是用户手动输入)
      

  3.   

    至于你说的从用户角度考虑的问题,本人也同意你的观点,我也向产品部反应过,可是现在没办法,他们说就要这样的效果,估计以后还得改,我也不想再多说神马,心里多少有点纠结引用 5 楼 feige05 的回复:
    首先回答你的问题,JScript codevar v='[1.1.1.]*0.8+[1.3.1.]、[1.3.1.]+[1.1.1.]*0.8、[1……
    [/Quote]