Use regexp match position instead of indexOf()
#38
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #36.
Matches were previously found using
str.match(regexp)
, thenadded as a
<mark>
at positionstr.indexOf(matches[i])
.This led to inaccurate highlights. For example:
/\bhe/g
(word boundary followed by 'he')str.match(regexp)
correctly returns 'he', but not the positionof the match
str.indexOf('he')
reports 5 (in the middle of 'Somewhere')instead of 10 ('here')
This is resolved by using
regexp.exec(str)
, which returns the indexof matched text, allowing word boundaries to function correctly (and
likely fixing some other devious but yet-undiscovered bugs).