emandiev/regex-replace-twig-filter

将 PHP 的 preg_replace 函数添加为 Twig 过滤器。

2.0.0 2024-06-10 18:22 UTC

This package is auto-updated.

Last update: 2024-09-10 18:57:31 UTC


README

将 PHP 的 preg_replace 函数添加为 Twig 过滤器。

要求

此插件需要 Craft CMS 3.x 或 4.x

安装

要安装插件,请按照以下说明操作。

  1. 打开您的终端并转到您的 Craft 项目
cd /path/to/project
  1. 然后告诉 Composer 加载插件
composer require emandiev/regex-replace-twig-filter
  1. 在控制面板中,转到设置 → 插件,然后点击 Regex Replace Twig Filter 的“安装”按钮。

使用方法

{{ entry.heading|preg_replace('~pattern~', 'replacement') }}

正则表达式中的任何反斜杠 必须 转义为 \\ 才能正常工作。

这与 Craft 的 replace 过滤器有何不同?

简而言之,preg_replace 过滤器提供了对 PHP 的 preg_replace 函数的直接调用。

Craft 的过滤器允许进行常规字符串和正则表达式替换,但略微限制了正则表达式替换的功能。

示例 1

preg_replace 允许您使用任何定界符,而 replace 只能使用正斜杠 /

{{ entry.heading|preg_replace('~pattern~', 'replacement') }}

示例 2

当传递数组时,replace 过滤器执行 str_replace,并始终忽略 $limit 参数。

preg_replace 将所有参数绑定到 PHP 的函数

这允许您为 $pattern$replacement 参数传递数组,并为 $limit 参数传递整数。

{{ entry.heading|preg_replace(['~pattern1~', '~pattern2~'], ['replacement1', 'replacement2'], 3) }}

致谢

Danail Emandiev 提供