Регулярное выражение
Проблема заключается в следующем(для удобства я сокращу ваше длинное или до одного варианта):
^(?:(?!00).)*$
Проверка (?! ...) находится внутри группы со знаком *, то есть выполняется каждый раз когда reg Exp engine переходит к следующему символу. Для вашего случая данную проверку надо вынести за группу(а сами скобки группы вообще убрать — так как в ней останется только 1 элемент):
^(?!00).*$
«0395420245».match(/^(?:039|050|063|066|067|068|091|092|093|094|095|096|097|098|099|00).*$/)
Не надо делать просмотр вперед, если используете полную строку