emandiev / regex-replace-twig-filter
将 PHP 的 preg_replace 函数添加为 Twig 过滤器。
2.0.0
2024-06-10 18:22 UTC
Requires
- craftcms/cms: ^3.0.0|^4.0.0
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
安装
要安装插件,请按照以下说明操作。
- 打开您的终端并转到您的 Craft 项目
cd /path/to/project
- 然后告诉 Composer 加载插件
composer require emandiev/regex-replace-twig-filter
- 在控制面板中,转到设置 → 插件,然后点击 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 提供