Ich versuche, einen Zählwert vor jedem hashtag in einem Textfeld wie folgt hinzuzufügen:Javascript regex Vorkommen von Hashtags in einem Textfeld zu zählen
"An example #string containing a #few #hashtags"
"An example 1:#string containing a 2:#few 3:#hashtags"
brauche ich die Zähler in Echtzeit angezeigt werden, wenn der Benutzer ist tippen.
ich einen keyup()
Ereignisrückruf bin mit dem Wert des Textbereiches zu überprüfen und vor jedem Auftreten eines Hashtag die Zählung einzufügen versuchen, eine Regex mit:
let value = '';
let _textarea = document.querySelector('textarea');
_textarea.addEventListener('keyup', e => {
value = _textarea.value;
let tags = value.match(/(#\S*)/g); //Match all hashtags
let i = 0;
value = value.replace(/(#\S*)/g, matched => {
\t console.log(matched, i);
i++;
return i + ':' + matched;
});
_textarea.value = value;
console.log(tags);
});
<textarea></textarea>
Das Problem ist, dass dies den Zähler nach dem Auslösen jedes Keyup-Ereignisses kontinuierlich vorstellt.
Was wäre eine geeignete Lösung dafür?
Wird dies obwohl die korrekte Indizierung des Hashtags verlassen? Ich denke, das wird alle Hashtags als 1 – Cameron
Edited meine Antwort –