I have the code
let dirtyHtml = `<img class="emojione" src="">
<img class="a" src="edw">
<img class="emojione" src="" />
<img class="emojione" src=""/>
<img src="">`;
let clearHtml = dirtyHtml.replace(/<img[^<>]+(?!emojione)[^<>]+>/gi, '');
console.log(clearHtml);
I expect to see this
<img class="emojione" src="">
<img class="emojione" src="" />
<img class="emojione" src=""/>
But I'll see empty string...
What wrong with my regular expression?
/<img(?:(?!emojione).)*>/gi
will match anything between <img
and >
that doesn't contain the string emojione
. Like this:
let dirtyHtml = `<img class="emojione" src="">
<img class="a" src="edw">
<img class="emojione" src="" />
<img class="emojione" src=""/>
<img src="">`;
let clearHtml = dirtyHtml.replace(/<img(?:(?!emojione).)*>/gi, '');
console.log(clearHtml);