From 655f2bc59e11ccd16229f2e7474b013e585192fb Mon Sep 17 00:00:00 2001 From: Benjamin Barenblat Date: Thu, 30 Jul 2015 17:26:16 -0400 Subject: Implement regex substitution --- src/regex__FFI.js | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'src/regex__FFI.js') diff --git a/src/regex__FFI.js b/src/regex__FFI.js index fcb8927..c7aa880 100644 --- a/src/regex__FFI.js +++ b/src/regex__FFI.js @@ -14,6 +14,16 @@ var UrWeb = { Regex: { +_compile: function(needle_string) { + var needle; + try { + needle = new RegExp(needle_string); + } catch (e) { + er("regex: compilation failed"); + } + return needle; +}, + succeeded: function(match) { return !!match; }, @@ -29,14 +39,12 @@ subexpressionMatch: function(match, n) { return match[n + 1]; }, -doMatch: function(needle_string, haystack) { - var needle; - try { - needle = new RegExp(needle_string); - } catch (e) { - er("regex: compilation failed"); - } - return haystack.match(needle); +doMatch: function(needle, haystack) { + return haystack.match(UrWeb.Regex._compile(needle)); +}, + +replace: function(needle, haystack, replacement) { + return haystack.replace(UrWeb.Regex._compile(needle), replacement); }, }}; // UrWeb.Regex -- cgit v1.2.3