2012-05-11 6 views
3

私は自分のフォームに記入するために姓と名を入力できるフィールドを持っています。場合によっては、ユーザーが自分のファーストネームを付けて、データベースの空のフィールドに表示されることがあります。このフォームは大きなプロジェクトの一部であり、私の会社の他のウェブサイトで使用されているため、このメソッドを完全に変更することはできません。フルネームにスペースが含まれているかどうかを確認するにはどうすればよいですか?

これはコードの一部で、私はそれを検証する必要があります。私はすでにフィールドが空ではないことを確認する検証を持っていますが、フィールドにスペースで区切られた2つの項目があることを確認するためにはさらに必要があります。フォームが2倍のデータを送信し、ユーザーを確保するために、すでに提出された場合

<input name="fullname" class="fullname" type="text" value="#fullname#" maxlength="150"/> 
      <cfif fullname eq '' and check2 eq 'check2'> 
      <br /><span style="color:red">*you must enter your full name</span></cfif> 

CHECK2のEQ「CHECK2」をチェックしています。

私はそれを行うために正規表現を使うことを考えましたが、残念なことに私はCF9でregxを使用する方法と私を介してオンラインでドキュメントをよく知っていません。

私は「Find」または「FindOneOF」を使用することも考えていましたが、それについての考えはありますか?

また、JQやJSなどの使用を避けようとしていますので、可能であればCFコードに基づいて提案してください。

この問題に対処する方法については、ご意見やご提案をいただければ幸いです。

+0

ColdFusionはサーバー側の検証になります。 JavaScriptはクライアントサイドの検証になります。フォームでは、サーバー側ではなくクライアント側の検証が必要だと示唆していますが、ColdFusionソリューションが必要です。理解できません。 –

+0

私はあなたが話していることを知っています。私はJSを避けたかった。だからJSなしでそれをする方法があれば、それを取るだろう。別の選択肢がある場合は、あなたの提案を書いてください:) – Geo

+0

実際に、私はあなたのフォームで達成しようとしているものを見ています。データを含むフォームを出力し、既存のデータに基づいてメッセージを表示しています。私の答えを修正させてください。 –

答えて

1

あなたは、サーバー側の検証のために、このような何かを行うことができます:

<cfscript> 
TheString = "ronger ddd"; 
TheString = trim(TheString); // get rid of beginning and ending spaces 
SpaceAt = reFind(" ", TheString); // find the index of a space 

// no space found -- one word 
if (SpaceAt == 0) { 
    FullNameHasSpace = false; 
// at least one space was found -- more than one word 
} else { 
    FullNameHasSpace = true; 
} 
</cfscript> 

<cfoutput> 
<input type="input" value="#TheString#"> 
<cfif FullNameHasSpace eq true> 
    <p>found space at position #SpaceAt#</p>  
    <p>Your data is good.</p> 
<cfelse> 
    <p>Did not find a space.</p> 
    <p>Your data is bad.</p> 
</cfif> 
</cfoutput> 
+0

ありがとう、これはよさそうだ。私はそれを試して、あなたに二番目に知らせるよ – Geo

+0

私はそれを少しテストした後、私はそれを編集した。これは文字列内のスペースを見つけるのにうまくいきます。 –

+0

それは働いた。私はコードの残りの部分を使用するようにコードを修正しなければなりませんでしたが、基本的な考え方は私を助けるためにそこにありました。ありがとうございました! – Geo

4

んが、正規表現は、このために必要ありません。もう少し簡単な解決策:

<cfset form.fullname = "Dave " /> 
<cfif listLen(form.fullname," ") GT 1> <!--- space-delimited list, no need for trimming or anything ---> 
    <!--- name has more than one 'piece' -- is good ---> 
<cfelse> 
    <!--- name has only one 'piece' -- bad ---> 
</cfif> 
+0

ご意見ありがとうございます。私は次回そのようなことをする必要がありますので、それを保存します。 – Geo

関連する問題