92f2079b76
* additional regex checks to ignore the <tag attribute="content"> * extract highlightUsers method - add test * refactor highlight regex * refactor the regex without `lookbehind` * remove unneeded regex
19 lines
510 B
JavaScript
19 lines
510 B
JavaScript
export function highlightUsers (text, userName, displayName) {
|
|
const findAnyMentionRegex = '@[\\w-]+(?:\\b)';
|
|
|
|
const atRegex = new RegExp(`${findAnyMentionRegex}`, 'gi');
|
|
const currentUser = [`@${userName}`, `@${displayName}`];
|
|
|
|
if (atRegex.test(text)) {
|
|
text = text.replace(atRegex, match => {
|
|
if (currentUser.includes(match)) {
|
|
return `<span class="at-highlight at-text">${match}</span>`;
|
|
}
|
|
|
|
return `<span class="at-text">${match}</span>`;
|
|
});
|
|
}
|
|
|
|
return text;
|
|
}
|