summaryrefslogtreecommitdiffhomepage
path: root/tests/custom/03_stdlib/33_replace
diff options
context:
space:
mode:
Diffstat (limited to 'tests/custom/03_stdlib/33_replace')
-rw-r--r--tests/custom/03_stdlib/33_replace34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/custom/03_stdlib/33_replace b/tests/custom/03_stdlib/33_replace
index b662ae8..388959f 100644
--- a/tests/custom/03_stdlib/33_replace
+++ b/tests/custom/03_stdlib/33_replace
@@ -205,3 +205,37 @@ In [anonymous function](), line 2, byte 40:
-- End --
+
+
+An optional limit parameter controls the maximum amount of replacements.
+
+-- Testcase --
+{%
+ printf("%.J\n", [
+ // negative limit performs no substitution
+ replace("aaaaa", "a", "x", -1),
+
+ // zero limit performs no substitution
+ replace("aaaaa", "a", "x", 0),
+
+ // positive limit
+ replace("aaaaa", "a", "x", 3),
+
+ // same rules apply to regex replaces:
+ replace("foo bar baz", /[ao]/g, "x", -1),
+ replace("foo bar baz", /[ao]/g, "x", 0),
+ replace("foo bar baz", /[ao]/g, "x", 3),
+ ]);
+%}
+-- End --
+
+-- Expect stdout --
+[
+ "aaaaa",
+ "aaaaa",
+ "xxxaa",
+ "foo bar baz",
+ "foo bar baz",
+ "fxx bxr baz"
+]
+-- End --