Используя Typescript и Node v8, я пытаюсь обработать текст уценки и удалить все URL-адреса изображений, которые следуют определенному шаблону:
Я пытаюсь использовать это регулярное выражение:
![([^]]+)]((.(Forbidden|(?:[0-9]{1,3}.){3}[0-9]{1,3}).)\
const markdownText =
'\
* ![Allowed image](http://accepteddomain/image.png)\
* ![Forbidden domain image](http://fordbidden/image.png) \
* ![Forbiden IP image](http://80.11.20.15/image.png) \
';
const forbiddenImages = /!\[([^\]]+)\]\((.*(fordbidden|(?:[0-9]{1,3}\.){3}[0-9]{1,3}).*)\)/gm;
function removeForbidden(markdown: string): string {
return markdown.replace(forbiddenImages,"![$1] ()");
}
console.info(removeForbidden(markdownText)
Я получаю только первую строку ввода:
* ![Allowed image] ()
Заранее спасибо!
Мне кажется, проблема возникает из-за обратной косой черты, используемой внутри строки. Я пробовал использовать `, и он работает:
const markdownText =
`
* ![Allowed image](http://accepteddomain/image.png)
* ![Forbidden domain image](http://fordbidden/image.png)
* ![Forbiden IP image](http://80.11.20.15/image.png)
`;
const forbiddenImages = /!\[([^\]]+)\]\((.*(fordbidden|(?:[0-9]{1,3}\.){3}[0-9]{1,3}).*)\)/gm;
function removeForbidden(markdown: string) {
return markdown.replace(forbiddenImages,"![$1] ()");
}
console.info(removeForbidden(markdownText))
`
Большое спасибо!!