Setup a series of inserts on a string, but without altering it (yet) then apply all the inserts without them interfeering with each other.
this is very useful if you want to check multiple regexps against a string and wrap those words...
I intend to use this to implement Syntax Highlighting in Hipster
insert-queue can beused to insert multiple strings into another string,
var iq = require( 'insert-queue' ) var q = iq('a string to do insertions on') q.wrap(/.*/, ['<p>', '</p>']) q.wrap(/string/, ['<i>', '</i>']) console.log(q.apply()) // '<p>a <i>string</i> to do insertions on</i>'
wrap (regexpy, around)
Wrap occurances of regexpy with around.
If around is a string, it will be inserted before and after matches of
regexpy is global (
/.../g) all matches will be replaced. Otherwise only the first
occurance will be replaced.
regexpy doesn't have to be a
RegExp. It just needs a
and to set
global = true if it can produce multiple matches
(and must use a
lastIndex property like a regexp)
In this way you can implement your own ad-hock look behind, etc.
string to be inserted at index, ahead of anything currently queued at
string to be inserted at index, behind anything currently queued at