『a-blog cms』フォームオプションのvalidator#regexではまったこと
フォームオプションの正規表現でのチェックの時に使うのが、validator#regexです。 これの設定の仕方ですが、ablog-cmsのサイトには以下の様な例が記されています。
ここで入力しているのは電話番号ですから、正規表現としては「\d{2,4}-\d{2,4}-\d{4}」となります。 しかしこのままですと、{}の部分がローカル変数の指定になるため、エスケープ処理として{}の前に¥(円マーク)を 付加している様です。 ¥マークを付けないと、{}の部分が空白でHTMLが出力され、以下の様になってしまいます。
このエスケープ処理ですが、どこで行われるのかと考えたのですが、どうもモジュール処理を展開するときに行っているようです。 但し、モジュールの処理の入れ子があった場合には以下の様に、モジュール処理の回数分¥マークを付けないとうまく正規表現がHTMLに変換されません。 それぞれのエスケープ処理で、¥マークが1個ずつはずされていく様です。 実際、内部の動きがどうなっているかは、その結果としてのHTMLを見るしかないので、この説明であっているかは定かではありません。 この辺りは、マニュアルには記載が無いので説明をお願いしたいものです。
コメント