Effizienter regulärer Ausdruck für die kanadische Postleitzahlfunktion
var regex = /[A-Za-z]\d[A-Za-z] ?\d[A-Za-z]\d/;
var match = regex.exec(value);
if (match){
if ( (value.indexOf("-") !== -1 || value.indexOf(" ") !== -1 ) && value.length() == 7 ) {
return true;
} else if ( (value.indexOf("-") == -1 || value.indexOf(" ") == -1 ) && value.length() == 6 ) {
return true;
}
} else {
return false;
}
Der Regex sucht nach dem Muster A0A 1B1. wahre tests:
A0A 1B1
A0A-1B1
A0A1B1
A0A1B1C << Problemkind
Also habe ich ein Häkchen für "-" oder "" und dann ein Häkchen für die Länge hinzugefügt.
Gibt es eine reguläre oder effizientere Methode?