如何仅在ColdFusion CFForm中验证字符?

Chr*_*ndt 4 regex validation coldfusion cfinput cfform

我有一个非常简单的cfform与一个表单字段:

<cfform action="asdf.cfm" method="post">
  <cfinput name="fieldName" type="text" size="20" maxlength="20" required="yes" validate="regex" pattern="[A-Za-z]" message="Only characters are allowed." />
  <input type="submit" name="btnSubmit" value="check" />
</cfform>
Run Code Online (Sandbox Code Playgroud)

从理论上讲,这将允许任何组合中的AZ和AZ,并​​且必须包含一些内容.

在实践中,我能够输入'aa'并且javascript验证不会抱怨.由于"空间"字符不在AZ中而不在az中,所以发生了什么?

谢谢!克里斯

Tom*_*lak 13

您缺少字符串开头和字符串结尾锚点:

^[A-Za-z]$
Run Code Online (Sandbox Code Playgroud)

或者,更有可能:

^[A-Za-z]{1,20}$
Run Code Online (Sandbox Code Playgroud)

你的样本,修改过:

<cfform action="asdf.cfm" method="post">
  <cfinput name="fieldName" type="text" size="20" maxlength="20" required="yes" validate="regex" pattern="^[A-Za-z]{1,20}$" message="Only characters are allowed." />
  <input type="submit" name="btnSubmit" value="check" />
</cfform>
Run Code Online (Sandbox Code Playgroud)

没有这些锚点,正则表达式只需要匹配任何地方,它不需要完全匹配.