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

Coldfusion 如何确定全名中是否有空格?,coldfusion,coldfusion-9,Coldfusion,Coldfusion 9,我有一个字段,用户可以输入名字和姓氏来填写我的表单。有时,用户输入他们的名字,这会导致我的数据库中出现空字段。请记住,我不能完全改变这个方法,因为这个表格是一个更大项目的一部分,我公司的其他网站正在使用它 这是我需要验证的代码部分。我已经进行了验证,以确保该字段不为空,但我需要进行更多验证,以确保该字段中有两个项目以空格分隔 <input name="fullname" class="fullname" type="text" value="#fullname#" maxlength=

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

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

<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代码保留您的建议


对于如何解决此问题的任何帮助或不同建议,我们将不胜感激。

对于服务器端验证,您可以这样做:

<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>

字符串=“荣格ddd”;
字符串=修剪(字符串);//去掉开头和结尾的空格
SpaceAt=reFind(“,字符串);//查找空间的索引
//找不到空格--一个单词
if(SpaceAt==0){
fullnamehaspace=false;
//至少找到了一个空格--不止一个单词
}否则{
fullnamehaspace=true;
}
在位置#SpaceAt#找到空间

你的数据很好

没有找到空间

你的数据不好


此操作不需要正则表达式。一个稍微简单的解决方案:

<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>


ColdFusion将是服务器端验证。JavaScript将是客户端验证。您的表单表明您需要客户端验证,而不是服务器端验证,但需要ColdFusion解决方案。我不明白,我知道你在说什么。我只是想避开JS。因此,如果有一种不用JS的方法,我就接受它。如果你还有其他选择,请把你的建议写下来:)事实上,我知道你想在表格中完成什么。您正在输出包含数据的表单,并基于现有数据显示消息。让我修改我的答案。谢谢你,看起来不错。我会尝试一下,然后马上告诉你我在测试后编辑了一下。这对于在字符串中查找空格应该很有效。它很有效。我不得不修改代码来处理其余的代码,但是基本的想法是为了帮助我。非常感谢。正如Dave Anderson所指出的,
refind
在寻找单个静态字符时是毫无意义的。如果需要变量,您只需执行以下操作:
fullnamehaspace=find(“,trim(字符串))
此外,写入
是完全冗余的-它已经是布尔值,因此不需要比较!谢谢你的评论。我会把它留到下次我需要做类似的事情的时候。