Имя переменной может содержать более одного символа, поэтому вам нужно +
после набора символов [...]
.(Кроме того, имена переменных JS могут содержать другие символы, кроме буквенно-цифровых.) Числовой литерал может содержать более одного символа, поэтому вы также хотите +
на RHS.
Что еще более важно, однако, есть многодругих кусочков гибкости, которые вы найдете более болезненными для обработки с помощью регулярного выражения.Например, рассмотрим var x = 1+2+3;
или var myString = "foo bar baz";
.Объявление переменной может занимать несколько строк.Это не должно заканчиваться точкой с запятой.Это может иметь комментарии в середине этого.И так далее.Регулярные выражения на самом деле не являются подходящим инструментом для этой работы.
Конечно, может случиться так, что вы анализируете код из определенного источника с очень специальной структурой и можете гарантировать, что каждое объявление имеет конкретную форму, которую выищу.В этом случае продолжайте, но если есть какая-то опасность, что природа обрабатываемого вами кода может измениться, тогда вы столкнетесь с болезненной проблемой, которая на самом деле не предназначена для решения с помощью регулярных выражений.
[ИЗДАНО примерно через день после написания, чтобы исправить ошибку, любезно указанную «Железным Человеком».]