diff --git a/src/TwigExtension.php b/src/TwigExtension.php index 9016ec4..676310f 100644 --- a/src/TwigExtension.php +++ b/src/TwigExtension.php @@ -384,7 +384,12 @@ class TwigExtension extends \Twig_Extension { * The new text if matches are found, otherwise unchanged text. */ public function pregReplaceFilter($text, $pattern, $replacement) { - return preg_replace("/$pattern/", $replacement, $text); + // BC layer. Before version 8.x-1.8 the pattern was without delimiters. + // @todo Remove this in Drupal 9. + if (strpos($pattern, '/') !== 0) { + return preg_replace("/$pattern/", $replacement, $text); + } + return preg_replace($pattern, $replacement, $text); } /** diff --git a/tests/src/Functional/TwigTweakTest.php b/tests/src/Functional/TwigTweakTest.php index 432a9d8..3108f5c 100644 --- a/tests/src/Functional/TwigTweakTest.php +++ b/tests/src/Functional/TwigTweakTest.php @@ -148,7 +148,11 @@ class TwigTweakTest extends BrowserTestBase { $this->assertByXpath($xpath); // Test preg replacement. - $xpath = '//div[@class = "tt-preg-replace" and text() = "foo-bar"]'; + $xpath = '//div[@class = "tt-preg-replace" and text() = "FOO-bar"]'; + $this->assertByXpath($xpath); + + // Test preg replacement (legacy). + $xpath = '//div[@class = "tt-preg-replace-legacy" and text() = "foo-bar"]'; $this->assertByXpath($xpath); // Test image style. diff --git a/tests/twig_tweak_test/templates/twig-tweak-test.html.twig b/tests/twig_tweak_test/templates/twig-tweak-test.html.twig index 59985e7..bf08269 100644 --- a/tests/twig_tweak_test/templates/twig-tweak-test.html.twig +++ b/tests/twig_tweak_test/templates/twig-tweak-test.html.twig @@ -36,7 +36,8 @@