000100050015-000100060009
我要在JS中判断只有在这两者之间的数字才有效。两边的不行。
怎么写这个JS???
另外不能用截取的方法。
另外下面的这个方法也不行的,当时我测试的太快了,没有测试外面的数据。经过测试是不行的。
if(Number(获取的值) > Number("000100050015") && Number(获取的值)  < Number("000100060009") ){
其他操作。

有没有其它的方法??在线等。

解决方案 »

  1.   

    这是我之前发的贴子。
    http://topic.csdn.net/u/20080904/16/8e0adbaa-8e69-461f-a4b2-25dfdcf8899a.html
    里面的方法不行。
      

  2.   

    我的思路是这样子的:最小范围是min,最大范围是max,以字符串形式来存储
    传入的比较参数是test,也以字符串形式存储,这样无论多大都可以表示比较过程:
    1、去除min、max、test三个数中高位多余的0
    2、找出去除高位0之后min、max、test位数最多的,记录这个位数为bit_count
    3、把三个数中位数不足高位补上0,保持三个数所占位数一致
    4、直接可以min<test<max比较了,字符串也可以直接比的,还是会按照0~9的次序返回的由于是字符串存储,至于传入的是否为数字,可以用正则表达式来验证,还有第2步去除高位的0之后,min是否比max小,验证是不是一个合法范围,这个楼主自己也知道检查,呵呵!大概就是这样,应该不难实现,可以满足需求!
      

  3.   

    若不是工作忙,直接就写一个了,这个思路肯定没问题的重点是:Js的字符传是传值,所以可以直接用于大于小于比较,"0"<"9","00"<"01" ……
      

  4.   

    你测试
    100100050015
    返回的是true?
      

  5.   

    看到你们的留言我都要疯了
    <script>
    function fillZero(target, length) {

    target = String(target);
    while(target.length < length) {
    target = "0" + target;
    }
    return target;
    }
    function isRange(target) {
    if (target < "000100050015" || target > "000100060009") {
    return false;
    }
    return true;
    }
    var testData = "000100050016";
    testData = fillZero(testData, 12);
    alert(isRange(testData));
    </script>
      

  6.   

    这么快结贴了啊……
    要是用于应用的话
    善意提醒下
    不要冒然做加零的操作
    最好限制必须输入12位
    按rainsilence的意思直接比较
    因为你不知道用户输入不足12位的数字到底是多少
    不知道楼主能看到否~