Smartyでifに正規表現を使う

published: 2010-05-08

Smartyで正規表現を扱うには、regex_replaceを使う。

http://www.smarty.net/manual/ja/language.modifier.regex.replace.php

サンプルにあるように、

{$articleTitle|regex_replace:"/[\r\t\n]/":" "}

というように書く。この書き方をifの中で使用する。
例えば、abcを含んでいるかのチェックなら、

{if $articleTitle|regex_replace:"/[^(abc)]/":"" ne ""}

こんな感じかな。「abc以外を空文字に変換した結果が、空文字ではない」という評価。もっとスマートな方法ありそうだけど。