Slash-Zn
@Slash-Zn

Как перевести в регулярное выражение (сжатие JS)?

Здравствуйте!
Помогите написать регулярное выражение из этой замены:
$code_js = str_replace(
						array('if (', ' +', '+ ', '{ ', ' {', '} ', ' }', '= ', ' =', '| ', ' |', '- ', ' -', ': ', ' :', '* ', ' *', '&& ', ' &&', '< ', ' <', '> ', ' >', '? ', ' ?', '/ ', ' /'), 
						array('if(', '+', '+', '{', '{', '}', '}', '=', '=', '|', '|', '-', '-', ':', ':', '*', '*', '&&', '&&', '<', '<', '>', '>', '?', '?', '/', '/'),
					$code_js);

Замена служит для сжатия JS кода, удаление лишних пробелов. Я пробовал изобразить, что то в этом духе (пример):
$code_js = preg_replace('~([+{}()=:;*]) | ([+{}()=:;*])~s', '$1', $code_js);

Но получается так, что вместе с пробелом удаляется символ (+{}()=:;*).

Спасибо.
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 2
profesor08
@profesor08 Куратор тега PHP
Для таких вещей есть npm пакет https://www.npmjs.com/package/uglify-js
Но если хочешь делать сам, то там есть ссылка на гит с исходниками, можешь посмотреть.
Ответ написан
Комментировать
zxscv
@zxscv
$code_js = preg_replace('~([+{}()=:;\*]) | ([+{}()=:;\*])~s', '$1$2', $code_js);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы