Javascript Expression Régulière correspondant à 5 ou 9 chiffres code postal

J'ai un problème similaire que mon récent post, mais avec un code postal validateur je suis en train de convertir plus d'un javascript processus de validation. mon script ressemble à ceci:

    var regPostalCode = new RegExp("\d{5}(-\d{4})?");
    var postal_code = $("input[name='txtzipcode']").val();
    if (regPostalCode.test(postal_code) == false) {
        bValid = false;
        msg = msg + '<li>Invalid Zip Code.</li>';
    }

De mon récent post, j'ai appris le caractère d'échappement que j'avais besoin au début. Fondamentalement, cette fonction est la validation d'un code postal c'est-à-dire 22601 ce qui est correct, mais il ne devrait pas valider 22601-1. Il devrait être de 4 chiffres après le tableau de bord comme 22601-9999. C'est comme la seconde partie de la validation est toujours vrai. De nouveau cette expression a travaillé dans le passé pour moi. Ai-je raté quelque chose? Est un autre caractère d'échappement nécessaires?

OriginalL'auteur Billy Logan | 2009-09-16