indigoviking / expressive
添加 PHP PCRE preg 函数作为 Twig 过滤器。
Requires
- craftcms/cms: ^3.0.0-RC1
This package is auto-updated.
Last update: 2024-09-29 04:36:58 UTC
README
添加 PHP preg 函数作为 Twig 过滤器。
要求
此插件需要 Craft CMS 3.0.0-beta.23 或更高版本。
安装
要安装此插件,请在插件商店中搜索 Expressive 或按照以下说明进行。
-
打开您的终端并进入 Craft 项目目录
cd /path/to/project -
然后告诉 Composer 加载插件
composer require IndigoViking/expressive -
在控制面板中,转到设置 → 插件,然后点击 Expressive 的“安装”按钮。
Expressive 概述
添加 PHP preg 函数作为 Twig 过滤器。 preg_filter
preg_match_first
使用 Expressive
Twig 会移除反斜杠,因此请使用双反斜杠来表示正则表达式模式。
过滤器
{{ entry.field|preg_filter(pattern, replacement, limit) }}
grep
{{ entry.field|preg_grep(pattern) }}
最后错误
此过滤器返回在 preg 函数上给出的最后错误。必须指定要测试的 preg 函数,并需要为该函数工作所需的适当参数。
测试 preg_filter
{{ entry.field|preg_last_error('filter', pattern, replacement, limit) }}
测试 preg_grep
{{ entry.field|preg_last_error('grep', pattern) }}
测试 preg_match
{{ entry.field|preg_last_error('match', pattern) }}
测试 preg_match_first
{{ entry.field|preg_last_error('matchfirst', pattern) }}
测试 preg_match_all
{{ entry.field|preg_last_error('matchall', pattern) }}
测试 preg_quote
{{ entry.field|preg_last_error('quote', delimiter) }}
测试 preg_replace
{{ entry.field|preg_last_error('replace', pattern, replacement, limit) }}
测试 preg_replace_callback
{{ entry.field|preg_last_error('callback', pattern, callback) }}
测试 preg_replace_callback_array
{{ entry.field|preg_last_error('callbackarray', pattern, limit, count) }}
测试 preg_split
{{ entry.field|preg_last_error('split', pattern) }}
匹配
{{ entry.field|preg_match(pattern) }}
首次匹配
{{ entry.field|preg_match_first(pattern) }}
全部匹配
{{ entry.field|preg_match_all(pattern) }}
引用
{{ entry.field|preg_quote(delimiter) }}
替换
{{ entry.field|preg_replace(pattern, replacement, limit) }} 示例:将电子邮件地址替换为 mailto 链接:{{ entry.field|preg_replace('/(\S+@\S+\.\S+)/', '<a href=mailto:"$1">$1</a>')|raw }} 添加 |raw 过滤器将渲染 HTML。
替换回调
{{ entry.field|preg_replace_callback(pattern, callback) }}
替换回调数组
{{ entry.field|preg_replace_callback_array(pattern, limit, count) }}
分割
{{ entry.field|preg_split(pattern) }}
由 The Indigo Viking 提供
