diff options
author | Benjamin Barenblat <bbaren@mit.edu> | 2015-07-30 17:26:16 -0400 |
---|---|---|
committer | Benjamin Barenblat <bbaren@mit.edu> | 2015-07-30 17:26:16 -0400 |
commit | 655f2bc59e11ccd16229f2e7474b013e585192fb (patch) | |
tree | 266f59b5894d7aee96441f5f9da8e1e474fbcb03 /src/regex__FFI.js | |
parent | 285053f45f39752e46899a9e99f1cfe1ca76165c (diff) |
Implement regex substitution
Diffstat (limited to 'src/regex__FFI.js')
-rw-r--r-- | src/regex__FFI.js | 24 |
1 files changed, 16 insertions, 8 deletions
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 |