Есть комментарии в коде:
/* /templates/images/icon.png */
как с помощью RegExp выбрать все что между звездочками, + сами звездочик со слешами:
пути будут разные только по длине, могу цифры попадаться.
([/*-*/])\w+ - так не получается
Ответ
Лучший вариант этого выражения — развернутый (?s)\/\*.*?\*\/, который выглядит как
/\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//g
См. демо регулярного выражения
Подробности:
\/\* - начало комментария /*
[^*]*\*+ - 0+ знаков, отличных от *, за которыми следует 1+ згаков *
(?:[^\/*][^*]*\*+)* - 0+ последовательностей:
[^\/*][^*]*\*+ - символ, отличный от / и *, за которым следует 0+ знаков, отличных от звёздочки, за которыми следует 1+ звёздочек
\/ - закрывающий знак /
Минус только в том, что если нужно получить только то, что между /* и */, нужно будет убрать последнюю букву с помощью, например, substr
var regex = /\/\*([^*]*\*+(?:[^\/*][^*]*\*+)*)\//g;
var str = "/* /templates/images/icon.png */
/* /templates/images/icon.png
* Тут тоже бывает текст
*/";
while (m = regex.exec(str)) {
console.log("Полное совпадение: " + m[0]);
console.log("Без /* и */: "+m[1].substring(0,m[1].length-1).trim());
}
Комментариев нет:
Отправить комментарий