日期:2014-05-16  浏览次数:20459 次

请教一个简单的正则表达式
四位数字,可以为0001~9999,如何过滤0000,请大虾指教

------解决方案--------------------
纯靠正则当然也可以写,即是至少一位不为零,写成四个子式的或
^(()|()|()|())$
第一个内()内的子式就是第一位不为零,即 [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]))$

------解决方案--------------------
上一个不对 这样试试可以不
/^(?!0000)\d{4}$/