<script>
var re = /^\d{5}(;\d{5})*$/;
alert(re.test("12345"));
alert(re.test("12345;67890"));
alert(re.test("12345;67890;98765"));
alert(re.test("12345;67890;987;65"));
</script>

解决方案 »

  1.   


    var re = /^[1-9]\d{4}(?:;[1-9]\d{4})*$/;
      

  2.   

    var re = /^\d{5}(\|\d{5})*$/;//要用转义字符不需要用?:预查
      

  3.   

    谢谢,我有一个问题很不明白
    为什么
    (\d{5}\;\d{5})可以匹配12345;12345
    (\d{5})可以匹配12345
    但是(\d{5})|(\d{5}\;\d{5})却只能匹配12345,而不能匹配12345;12345
    只有前面的(\d{5})可以匹配,如果把前面的(\d{5})换成一个字符,如
    (\;)|(\d{5}\;\d{5}),这样即可以匹配字符";",又可以匹配12345;12345了
      

  4.   

    <script>
    var re = /^(\d{5})|(\d{5}\;\d{5})$/
    alert(re.test("12345;12345"));//true
    </script>是可以的
      

  5.   

    (\d{5})|(\d{5}\;\d{5})修改成
    (\d{5})|(\d{5}\*+;+\d{5}*)
    应该就可以了