Ошибка валидации markdown
Описание
Есть вот этот код:
function number(min, max) {
return Math.random() * (max - min) + min;
}
Если посмотреть его markdown как строку будет:
"\`\`\`\nfunction number(min, max) {\n\treturn Math.random() * (max - min) + min;\n}\n\`\`\`"
Ну логично, что код написанный мною валидируется как код, поэтому его структуру можно описать этим regex:
/```.*?```/gm
Но почему-то строка не проходит проверку regex:
const string = "\`\`\`\nfunction number(min, max) {\n\treturn Math.random() * (max - min) + min;\n}\n\`\`\`";
const regex = /```.*?```/gm;
console.log(regex.test(string));
Вопрос
Почему?
Ответы (2 шт):
Автор решения: UModeL
→ Ссылка
(Точка, десятичная запятая) сопоставляется с любым символом за исключением символов новой строки: \n, \r, \u2028 или \u2029.
const string = "\`\`\`\nfunction number(min, max) {\n\treturn Math.random() * (max - min) + min;\n}\n\`\`\`";
const regex = /```[\s\S]*?```/gm;
console.log(regex.test(string));
Автор решения: ipatev_nn
→ Ссылка
Для захвата метасимволом . перевода строки можно так же добавить модификатор s - single line.
const string = "\`\`\`\nfunction number(min, max) {\n\treturn Math.random() * (max - min) + min;\n}\n\`\`\`";
const regex = /```.*?```/gms;
console.log(regex.test(string));