求一校验全国行政区域代码的正则表达式:
 前两位代表省代码,中间两位代表市代码,后两位代表县代码 共6位长度。
 其前两位中省代码中第一位不能为0,后一位可以为零,如11,25,30,但不能是01,03等。
 市县代码的两不能同时为0即可。
 
 如:301088、321088、320188、321001、321010可以
 但  031088、320088、320000、321000等则不行。
先谢了!!!

解决方案 »

  1.   

    [1-9]\d{5}
    function test(str){
        return /[1-9]\d{5}/ig.test(str);
    }
      

  2.   

    需要match出来作一下比较就可以了 function test(str){
    var reg = /^[1-9]\d(\d{2})(\d{2})$/;
    str = str.toString();
    var temp = str.match(reg);
    if(temp[1]!=00 && temp[2]!=00){
    alert("true");
    }
    else{
    alert("false");
    } }
    test(320010)
      

  3.   

    /^[1-9]\d([1-9]\d|\d[1-9]){2}$/
    已通过测试:<script>
    var r=/^[1-9]\d([1-9]\d|\d[1-9]){2}$/;
    var s="301088、321088、320188、321001、321010、031088、320088、320000、321000".split("、");for(var i=0;i<s.length;i++){
        document.write(s[i]+": "+r.test(s[i])+"<br>");
    }
    </script>
      

  4.   

    try...var reg = /^[1-9][0-9]((?!00)\d{2}){2}$/;
      

  5.   

    var a="300101";
    var regx=/[1-9]\d(?!00)\d{2}(?!00)\d{2}/;alert(a.match(regx));这个直接测试 可用