Эффективное регулярное выражение для канадской функции почтового индекса

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;
}

Регулярное выражение ищет шаблон A0A 1B1. истинные испытания:

A0A 1B1

А0А-1B1

A0A1B1

A0A1B1C << проблемный ребенок

поэтому я добавил проверку «-» или «», а затем проверку длины.

Существует ли регулярное выражение или более эффективный метод?

Ответы на вопрос(5)

Ваш ответ на вопрос