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
Vous devez vous connecter pour publier un commentaire.
Ajouter des ancres:
new RegExp("^\\d{5}(-\\d{4})?$")
. Cela force le moteur d'expression régulière pour n'accepter qu'un match, si il commence au premier caractère de la chaîne (^
) et se termine à la fin de la chaîne ($
) assortie.Remarque, qu'il pourrait y avoir une faute de frappe dans l'expression régulière, vous l'hépatite a donné à votre question: la seconde
\d
manque une barre oblique inverse.OriginalL'auteur Dirk
Changer votre regex:
OriginalL'auteur Philippe Leybaert