jsrender - Replace $& regex group -
boris moore's great jsrender library has 1 bug. neither understand meaning of $&
(lastmatch) in regex replace groups nor have idea how resolve.
this article telling me to not use function in production environments, , indirectly not use jsrender
live.
could explain me , give replacement of line:
tmplfn(tmplormarkup.replace(rescapequotes, "\\$&"), tmpl);
regards
edit: hopeless
unfortunately jsrender , jdk leave other holding baby. jsrender says: $% works fine, jdk never specified , not bug.
that not in fact bug. mdn article link non-standard regex.lastmatch()
api, programmatic way of accessing last match. jsrender not using api.
in fact jsrender using "$&"
replacement pattern in replacement string, in somestring.replace(regex, replacementstring)
call - standard usage in javascript regex scenarios.
see https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/string/replace, says:
the replacement string can include following special replacement patterns: ... $& inserts matched substring.
the regex in line of code rescapequotes, declared rescapequotes = /['"\\]/g
- , valid javascript regex.
that line looking '
"
or\
, replacing them same character preceded \
.
incidentally should not trying run same regex expressions used in jsrender if java regex expressions, since in java rules , validity of regex expressions can quite different. jsrender of course runs in javascript environment - browser, or node.js on server...
Comments
Post a Comment