现在我从一个文本框里 得到一个值: var v =document.getElementById("v1").value;
要进行验证  比如1002 通过  1002+1003 通过 1002-1003 通过 1002+1003-1002 通过 1002+1003-1002+10022 通过
1003-1002+1003 也通过  ------ 不通过 ++++++不通过 1002++++++++1003不通过 1002------11111不通过 
请牛人指教这个验证怎么写

解决方案 »

  1.   

    这个很难吗.?
    多重if,  或者你会正则表达式的话, 用正则表达式去匹配,  不过像你要求这样具体的数字,还是不推荐用正则表达式.  就用if吧
      

  2.   

    那你那个是两个不确定放一起了啊
    1个不确定是 四位数个数1到多个
    2个不确定是 没两个四位数中间的+或-个数 1到多个
     以上综述 不要用正则了 
    也不要判断了 就直接替换掉吧 判断var v =document.getElementById("v1").value;的值是否含有++或--
    有的话就替换replace("++",+) -是同理
    然后递归再判断
      

  3.   


    function strReplace(str,type){
    var typeTemp = "";
    if(type == "++"){
    typeTemp  = "+";
    }else if(type == "--"){
    typeTemp = "-";
    }
    if(str.indexOf(type) != -1){
    str = str.replace(type,typeTemp);
    strReplace(str,type);
    }else{
    return str;
    }
    }
    试试 我这个是用text文本写的 没测试
      

  4.   

    str 是你页面上获得的私字符串
    type是++或--
      

  5.   


    str   对应var v =document.getElementById("v1").value;
    type  对应++ 或 --
    eg:
    var v =document.getElementById("v1").value;
    strReplace(v,"++");
      

  6.   

    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function strReplace(type){
    var v =document.getElementById("v1").value;
    var typeTemp = "";
    if(type == "++"){
    typeTemp = "+";
    }else if(type == "--"){
    typeTemp = "-";
    }
    if(v.indexOf(type) != -1){
    v = v.replace(type,typeTemp);
    strReplace(v,type);
    }else{
    return v;
    alert(v);
    }
    }//-->
    </SCRIPT>
    </HEAD><BODY>
      <input type="text" id="v1" />
      <input type="button" value="test" onclick="strReplace('+')">
    </BODY>
    </HTML>
      

  7.   

    试一下这个吧,没有验证,供参考
    var v =document.getElementById("v1").value;if(v.match(/\d+((\+|\-)\d+)+/)){
        alert("True");
    }else{
        alert("False");
    }
      

  8.   

    用eval
    function test(text)
      try {
        return !isNaN(eval(text)*1);
      } catch (e) {
        return false;
      }
    }绝大部分情况没问题,但是对牛人来说,存在注入漏洞
      

  9.   

    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <SCRIPT LANGUAGE="JavaScript">function strReplace(str,type){
    var typeTemp = "";
    var result = "";
    if(type == "++"){
    typeTemp = "+";
    }else if(type == "--"){
    typeTemp = "-";
    }
    if(str.indexOf(type) != -1){
    str = str.replace(type,typeTemp);
    return strReplace(str,type);;
    }else{
    return str;
    }
    }
    function doSom(){
    var v =document.getElementById("v1").value;
    var temp = strReplace(v,"++");
    alert("结果:" + temp);}
    </SCRIPT>
    </HEAD><BODY>
      <input type="text" id="v1" />
      <input type="button" value="test" onClick="doSom();">
    </BODY>
    </HTML>