ColdFusionでフォームの作成 5/6
前回は半角スペースが入力されていた場合の対応を説明しました。
今回はTrim()では処理できない全角スペースが入力されていた場合の対応を考えてみたいと思います。
多分、いろいろなアプローチが考えられると思うのですが、前回までに作成した<CFIF IsDefined("FORM.myName") AND trim(FORM.myName) NEQ "">に最小限の変更するだけで済む様に考えてみたいと思います。
Trim()の処理は変数内の文字列の前後の半角スペースを取り除き、結果の変数が""だった場合にFalseを返すというものでしたので、一旦、変数の中の全角スペースを半角にしてTrim()に渡したら、今までののコードを生かすことができます。
それには、Replace()関数を使います。ColdFusionでは、関数の引数の中に関数を入れることができるので、FORM.myNameをReplace(FORM.myName, " ", " ","all")に置き換えます。
すると、Trim(Replace(FORM.myName, " ", " ","all"))になります。
これで、Trim()で半角スペースを取り除く前に、全角スペースを半角スペースに変換することができるようになりました。
現在のCFMはこうなっています。
<CFIF IsDefined("FORM.myName") AND Trim(Replace(FORM.myName, " ", " ","all")) NEQ "">
<CFOUTPUT>#FORM.myName#</CFOUTPUT>
<CFELSE>
<CFFORM action="#CGI.SCRIPT_NAME#" method="post">
<CFINPUT name="myName" type="text" size="20" maxlength="30" required="yes" message="名前を入力してください">
<INPUT type="submit" value="送信">
</CFFORM>
</CFIF>
【予告】
次回は、「クロスサイトスクリプティング」を考えます。
◇この記事が参考になりましたらこちらをクリック ≫ 人気blogランキング
◇「『うぇっぶ』のはなし」へのコメント募集中 ≫ ビジネスブログランキング100選
| 固定リンク
|
「ColdFusion」カテゴリの記事
- 久々のプログラミングは「つらい」(2004.04.08)
- ColdFusionってなにさ? 1/2(2004.04.10)
- ColdFusionってなにさ? 2/2(2004.04.11)
- ColdFusionでフォームの作成 1/6(2004.04.13)
- ColdFusionでフォームの作成 2/6(2004.04.14)



コメント