四位数字,可以为0001~9999,如何过滤0000,请大虾指教

解决方案 »

  1.   

    不如分两步,直接正则反向排除的法写起来有点麻烦
            var s = document.getElementById("text1").value;
            alert(/^\d{4}$/.test(s) && s!="0000");2楼的写错了,末位是0的都不匹配
      

  2.   

    纯靠正则当然也可以写,即是至少一位不为零,写成四个子式的或
    ^(()|()|()|())$
    第一个内()内的子式就是第一位不为零,即 [1-9]\d{3},
    第二个内()内的子式就是第二位不为零,即  \d[1-9]\d{2},
    第三个内()内的子式就是第三位不为零,即  \d{2}[1-9]\d,
    第四个内()内的子式就是第四位不为零,即  \d{3}[1-9],完整写法就是^(([1-9]\d{3})|(\d[1-9]\d{2})|(\d{2}[1-9]\d)|(\d{3}[1-9]))$