专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 使用正则表达式验证表单数据

使用正则表达式验证表单数据

更新时间:2021-08-12 12:57:59 来源:动力节点 浏览764次

您可以使用正则表达式来匹配和验证用户在 cfinput 和 cftextinput 标签中输入的文本。普通字符与特殊字符组合以定义匹配模式。只有当用户输入与模式匹配时,验证才会成功。

正则表达式让您可以检查输入文本的各种自定义条件,输入必须遵循特定模式。您可以将简单的正则表达式连接到复杂的搜索条件中,以针对复杂的模式进行验证,例如具有不同结尾的几个单词中的任何一个。

您可以在正则表达式中使用 ColdFusion 变量和函数。ColdFusion 服务器在计算正则表达式之前先计算变量和函数。例如,您可以根据从其他输入数据或数据库值动态生成的值进行验证。

注意:此处列出的规则适用于 JavaScript 正则表达式,仅适用于 incfinput 和 cftextinputtags 中使用的正则表达式。这些规则不同于 ColdFusion 函数 REFind、REReplace、REFindNoCase 和 REReplaceNoCase 使用的规则。有关 ColdFusion 函数中使用的正则表达式的信息,请参阅 在函数中使用正则表达式。

特殊字符

因为特殊字符是正则表达式中的运算符,要将特殊字符表示为普通字符,请在它前面加上反斜杠进行转义。例如,使用两个反斜杠字符 (\\) 表示一个反斜杠字符。

单字符正则表达式

以下规则管理匹配单个字符的正则表达式:

特殊字符是:+ * ? . [ ^ $ ( ) { | \

如果任何字符不是特殊字符或前面的反斜杠 (\) 对字符进行转义,则任何字符都与其自身匹配。

后跟任何特殊字符的反斜杠 (\) 与文字字符本身匹配;也就是说,反斜杠转义了特殊字符。

句点 (.) 匹配除换行符以外的任何字符。

括在方括号 ([]) 中的一组字符是一个单字符正则表达式,匹配该组中的任何字符。例如,“[akm]”匹配 a、 k或 m。如果在方括号中包含 ](右方括号),它必须是第一个字符。否则,它不起作用,即使您使用\]。

破折号可以表示一个字符范围。例如,[az] 匹配任何小写字母。

如果括号中的一组字符的第一个字符是脱字符号 (^),则表达式匹配该组中除这些字符之外的任何字符。它与空字符串不匹配。例如:“[^akm]” 匹配除a、 k或 m之外的任何字符 。如果插入符号不是集合的第一个字符,它就会失去它的特殊含义。

您可以通过用字符集替换单个字符来使正则表达式不区分大小写;例如,“[Nn][Ii][Cc][Kk]”是名称 Nick(或 NICK,或 nick,甚至 nIcK)的不区分大小写的模式。

您可以使用以下转义序列来匹配特定字符或字符类:

转义序列 火柴 转义序列 意义
[\b] 退格。 \s 以下任何空白字符:空格、制表符、换页和换行。
\b 单词边界,例如空格。 \S 除 \s 匹配的空白字符之外的任何字符。
\B 非词边界。 \t 标签。
\cX 控制字符 Ctrl-x。例如,\cv 匹配 Ctrl-v,这是粘贴文本的常用控制字符。 \v 垂直选项卡。
\d 一个数字字符 [0-9]。 \w 一个字母数字字符或下划线。相当于 [A-Za-z0-9_]。
\D 除数字外的任何字符。 \W \w 不匹配的任何字符。相当于 [^A-Za-z0-9_]。
\F 表单馈送。 \n 对括号中第 n 个表达式的反向引用。
\n 换行。


\八进制

ASII 字符表中由指定的八进制数表示的字符。
\r 回车。 \\x十六进制 ASCII 字符表中由指定的十六进制数表示的字符。

使用以下规则构建多字符正则表达式:

括号将正则表达式的各个部分组合成一个子表达式,该子表达式可以被视为一个单元。例如,“(HA)+”匹配的一个或多个实例 公顷。

单字符正则表达式或后跟星号 (*) 的分组子表达式匹配零次或多次出现的正则表达式。例如,“[az]*”匹配零个或多个小写字符。

一个字符的正则表达式或后跟加号 (+) 的分组子表达式匹配一个或多个正则表达式。例如,“[az]+”匹配一个或多个小写字符。

一个字符的正则表达式或后跟问号 (?) 的分组子表达式匹配该正则表达式的零次或一次出现。例如,“xy?z”匹配 xyz 或 xz。

正则表达式开头的克拉 (^) 匹配字段的开头。

正则表达式末尾的美元符号 ($) 与字段的末尾匹配。

正则表达式的串联会创建一个与相应的字符串串联相匹配的正则表达式。例如,“[AZ][az]*”匹配任何大写的单词。

OR 字符 (|) 允许在两个正则表达式之间进行选择。例如,“jell(y|ies)”匹配 果冻 或 果冻。

大括号 ({}) 表示正则表达式出现的范围。您可以以“{m, n}”的形式使用它们,其中 m 是一个等于或大于零的正整数,表示范围的开始,而 n 等于或大于 m,表示范围的结束。例如,“(ba){0,3}”最多匹配三对表达式 ba。形式“{m,}”要求 前面的正则表达式至少 出现m次。形式“{m}”要求 前面的正则表达式恰好 出现m次。不允许使用“{,n}”形式。

反向引用

反向引用使您可以匹配先前匹配的括号组中的文本。后跟数字 n (\n) 的斜杠指的是第 n个带括号的子表达式。

如何使用反向引用的一个例子是搜索双字;例如,在文本中查找“the the”或“is is”的实例。以下示例显示了正则表达式中的反向引用:

(\b[A-Za-z]+)[ ]+\1

此代码匹配包含重复两次的单词的文本;也就是说,它匹配一个单词(由\b 单词边界特殊字符和“[A-Za-z]+”指定)后跟一个或多个空格(由“[ ]+”指定),然后是第一个匹配的子表达式,括号中的第一个单词。例如,它会匹配“is is”,但不会匹配“This is”。

完全匹配和部分匹配

ColdFusion 验证通常认为一个值是有效的,如果其中任何一个与正则表达式模式匹配。如果要确保整个条目与模式匹配,请将其“锚定”到字段的开头和结尾,如下所示:

如果插入符号 (^) 位于模式的开头,则该字段必须以与该模式匹配的字符串开头。

如果美元符号 ($) 位于模式的末尾,则该字段必须以与该模式匹配的字符串结尾。

如果表达式以插入符号开头并以美元符号结尾,则该字段必须与模式完全匹配。

以上就是动力节点小编介绍的"使用正则表达式验证表单数据",希望对大家有帮助,想了解更多可查看Java在线学习。动力节点在线学习教程,针对没有任何Java基础的读者学习,让你从入门到精通,主要介绍了一些Java基础的核心知识,让同学们更好更方便的学习和了解Java编程,感兴趣的同学可以关注一下。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>