関数内の文字列に対して正規表現チェックを行っています。
function ValidateZipCodeString(listOfZipCodes) {
var regex = /^([, ]*\d{5})+[, ]*$/,
matches = regex.exec(listOfZipCodes);
if (regex.exec(listOfZipCodes) === null) {
console.log('validation failed');
return false;
} else {
console.log('validation passed');
return true;
}
}
正規表現は、郵便番号の有効/無効リストを正しく検出しています。
私はこれで関数を呼び出しています:
console.log('zip code: ' + listOfZipCodes);
if (ValidateZipCodeString(listOfZipCodes)) {
$tr.find('label#lblCoverageEditError').text('There is invalid text in the list of zip codes. Only 5-digit zip codes allowed.').show();
} else {
console.log('validate function returned true');
}
問題は、検証関数内のコンソール出力に「検証に失敗しました」と表示されたときに、上記のif/elseがelse句に移動することです。したがって、その関数を正しく呼び出してはいけません。
私がやろうとしていることをする正しい方法は何ですか?