如何确定全名是否有空格?

时间:2012-05-11 15:02:48

标签: coldfusion coldfusion-9

我有一个字段,用户可以输入名字和姓氏来填写我的表格。有时,用户会使用他们的名字,这会导致我的数据库中出现空字段。请记住,我无法完全更改此方法,因为此表单是更大项目的一部分,并且正在被我公司的其他网站使用。

这是我需要围绕它进行验证的代码部分。我已经进行了验证,确保该字段不为空,但我需要更多以确保该字段中有两个以空格分隔的项目。

<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代码的建议。

非常感谢任何有关如何解决此问题的帮助或不同建议。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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>