Как стать автором
Обновить

Об удалении квотированных строк из текста JavaScript

Время на прочтение1 мин
Количество просмотров1.2K
Как часть программы анализа исходных кодов было необходимо вырезать из JavaScript все строковые литералы. Сначала на PHP был реализован state based парсер, но это было медленно и уныло. А сделать быстро получилось с помощью регулярных выражений.

Источником вдохновения послужил пост на stackoverflow. В результате получилось следующее решение:
return preg_replace('/(
"[^"\\\\]*(?:\\\\.[^"\\\\]*)*" # match double quoted string
|
\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\' # match single quoted string
|
(?s:\\/\\*.*?\\*\\/) # multiline comments
|
\\/\\/.*?\\n # singleline comments
|
string.replace\\(\\/[^\\/\\\\]*(?:\\\\.[^\\/\\\\]*)*\\/ # an JS regexp
)/x', '', $str);

И это во много раз быстрее анализатора, пятьдесят строчек которого канули в Лету.
Теги:
Хабы:
Всего голосов 22: ↑10 и ↓12-2
Комментарии18

Публикации

Истории

Работа

PHP программист
147 вакансий

Ближайшие события