javascript - regex: non-greedy search of vocals before a text -
i making script able conjugate verbs, recognized when word followed (verb) expression. example: "i start(verb) everything"; started searching regex "(verb)" , replaced corresponding "ing" or "ed", resulting succesfully in: "i started everything" or "i starting everything" (of course system not perfect) problem now; if root ends in vocal, vocal should removed: bake(verb) search should have included last vocal; have result "baking", instead of "bakeing", changed regex into: "[aeiou]?(verb)" [aeiou] matches letter between brackets, , ? sign makes non-greedy. regex worked fine in http://regexr.com/, in javascript code, stopped finding.
function replacetense(replace, str) { return str.replace(new regexp('[aeiou]?\(verb\)', 'gi'), replace); }
where "replace" variable corresponding "ing" or "ed".
regexp
needs double escaping \\(
instead of \(
.
you can use:
function replacetense(replace, str) { return str.replace(/[aeiou]?\(verb\)/gi, replace); }
or using regexp
object:
function replacetense(replace, str) { return str.replace(new regexp('[aeiou]?\\(verb\\)', 'gi'), replace); }
Comments
Post a Comment