JS正则表达式,值允许输入2种格式的数据  100  或 100-200  不能有负数

解决方案 »

  1.   

    var arr = [100,101,199,200,201,99,-111]
    var reg =/^(100|200|1(?=[0-9])\d(?=[0-9])\d)$/
    for(var i = 0 ; i < arr.length; i ++)
    {
        var bool = false;
        if(reg.test(arr[i].toString()))
        {
           bool=true;
        }
        document.write(arr[i]+"----------"+bool+"</br>");
        
    }
     
      

  2.   

    <script>
    function check(obj){
    var reg = /^\d+-?(\d+-?)*$/g;
    if(!reg.test(obj.value)){
    obj.value = "";
    }
    }
    </script>
    <input type="text" onkeyup="check(this)">