summaryrefslogtreecommitdiffstats
path: root/dom/xslt/xslt/txEXSLTRegExFunctions.sys.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'dom/xslt/xslt/txEXSLTRegExFunctions.sys.mjs')
-rw-r--r--dom/xslt/xslt/txEXSLTRegExFunctions.sys.mjs32
1 files changed, 32 insertions, 0 deletions
diff --git a/dom/xslt/xslt/txEXSLTRegExFunctions.sys.mjs b/dom/xslt/xslt/txEXSLTRegExFunctions.sys.mjs
new file mode 100644
index 0000000000..d13ea6bea5
--- /dev/null
+++ b/dom/xslt/xslt/txEXSLTRegExFunctions.sys.mjs
@@ -0,0 +1,32 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 4 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+export function match(str, regex, flags, doc) {
+ var docFrag = doc.createDocumentFragment();
+ var re = new RegExp(regex, flags);
+ var matches = str.match(re);
+ if (matches != null) {
+ for (var i = 0; i < matches.length; ++i) {
+ var match = matches[i];
+ var elem = doc.createElementNS(null, "match");
+ var text = doc.createTextNode(match ? match : "");
+ elem.appendChild(text);
+ docFrag.appendChild(elem);
+ }
+ }
+ return docFrag;
+}
+
+export function replace(str, regex, flags, replace) {
+ var re = new RegExp(regex, flags);
+
+ return str.replace(re, replace);
+}
+
+export function test(str, regex, flags) {
+ var re = new RegExp(regex, flags);
+
+ return re.test(str);
+}