diff --git a/src/TributeRange.js b/src/TributeRange.js index de9faca1..cbd2509f 100644 --- a/src/TributeRange.js +++ b/src/TributeRange.js @@ -307,7 +307,7 @@ class TributeRange { let c = config.trigger let idx = config.requireLeadingSpace ? this.lastIndexWithLeadingSpace(effectiveRange, c) : - effectiveRange.lastIndexOf(c) + this.lastIndexWithoutLeadingSpace(effectiveRange, c) if (idx > mostRecentTriggerCharPos) { mostRecentTriggerCharPos = idx @@ -384,6 +384,18 @@ class TributeRange { return index } + lastIndexWithoutLeadingSpace (str, trigger) { + let index = str.lastIndexOf(trigger); + + if (index > -1) { + while (str.substring(index - trigger.length, index) === trigger) { + index -= trigger.length; + } + } + + return index; + } + isContentEditable(element) { return element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA' }