2015-03-20 3 views
0

У меня возникли проблемы с моим регулярным выражением, чтобы удалить комментарии из JavaScript. У меня есть два регулярных выражения. Первый должен удалить /* */ комментариев: !/\*[^*]*\*+([^/][^*]*\*+)*/!, который отлично работает. Второй должен удалить // комментариев: ^(?!:)\/\/.*Пользовательский JS minify на лету

Я добавил ^(?!:)\/\/.*, чтобы избежать удаления URL из JS, но он не работает.

Вы можете проверить здесь: https://regex101.com/r/vP4gL5/1

//Init Layout 

// Cookie law 
url : 'http://fakeurl.com/cookielaw', 

ответ

1

Вам нужно добавить многострочный модификатор и .* внутри отрицательного предпросмотра. ^(?!:) это проверяет не только : только с самого начала. Таким образом, это соответствует строкам с : посередине или последним.

'~^(?!.*:)\/\/.*~m' 

DEMO

Похоже ^\/\/.* тоже работает. Он соответствует всем строкам, начинающимся с //. И это лучше, чтобы добавить шаблон, чтобы соответствовать начальные пробелы также как

^\h*\/\/.* 

думаю <space>//foo также считают строки комментария.

+0

Thx, это хорошо работает! –

Смежные вопросы