Я хочу написать функцию, которая берет строку и возвращает массив с содержимым всех комментариев блока от него. Например:Как извлечь комментарии блока из строки, используя регулярные выражения?
var text = 'This is not a comment\n/*this is a comment*/\nNot a comment/*Another comment*/';
var comments = getComments(text);
и «комментарии» будет массив со значениями:
['this is a comment', 'Another comment']
Я пытался с этим кодом:
function getComments(text) {
var comments,
comment,
regex;
comments = [];
regex = /\/\*([^\/\*]*)\*\//g;
comment = regex.exec(text);
while(comment !== null) {
skewer.log(comment);
comments.push(comment[1]);
comment = regex.exec(text);
}
return comments;
}
Проблема заключается в том, что если есть * или / в комментарии, не соответствует
Это работает только с * most *, но не во всех случаях. Возьмите 'var a ="/* "; var b = "* /"; 'например - не следует извлекать комментарии. – nhahtdh