更新時(shí)間:2021-08-12 12:57:59 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1100次
您可以使用正則表達(dá)式來匹配和驗(yàn)證用戶在 cfinput 和 cftextinput 標(biāo)簽中輸入的文本。普通字符與特殊字符組合以定義匹配模式。只有當(dāng)用戶輸入與模式匹配時(shí),驗(yàn)證才會(huì)成功。
正則表達(dá)式讓您可以檢查輸入文本的各種自定義條件,輸入必須遵循特定模式。您可以將簡單的正則表達(dá)式連接到復(fù)雜的搜索條件中,以針對(duì)復(fù)雜的模式進(jìn)行驗(yàn)證,例如具有不同結(jié)尾的幾個(gè)單詞中的任何一個(gè)。
您可以在正則表達(dá)式中使用 ColdFusion 變量和函數(shù)。ColdFusion 服務(wù)器在計(jì)算正則表達(dá)式之前先計(jì)算變量和函數(shù)。例如,您可以根據(jù)從其他輸入數(shù)據(jù)或數(shù)據(jù)庫值動(dòng)態(tài)生成的值進(jìn)行驗(yàn)證。
注意:此處列出的規(guī)則適用于 JavaScript 正則表達(dá)式,僅適用于 incfinput 和 cftextinputtags 中使用的正則表達(dá)式。這些規(guī)則不同于 ColdFusion 函數(shù) REFind、REReplace、REFindNoCase 和 REReplaceNoCase 使用的規(guī)則。有關(guān) ColdFusion 函數(shù)中使用的正則表達(dá)式的信息,請(qǐng)參閱 在函數(shù)中使用正則表達(dá)式。
因?yàn)樘厥庾址钦齽t表達(dá)式中的運(yùn)算符,要將特殊字符表示為普通字符,請(qǐng)?jiān)谒懊婕由戏葱备苓M(jìn)行轉(zhuǎn)義。例如,使用兩個(gè)反斜杠字符 (\\) 表示一個(gè)反斜杠字符。
以下規(guī)則管理匹配單個(gè)字符的正則表達(dá)式:
特殊字符是:+ * ? . [ ^ $ ( ) { | \
如果任何字符不是特殊字符或前面的反斜杠 (\) 對(duì)字符進(jìn)行轉(zhuǎn)義,則任何字符都與其自身匹配。
后跟任何特殊字符的反斜杠 (\) 與文字字符本身匹配;也就是說,反斜杠轉(zhuǎn)義了特殊字符。
句點(diǎn) (.) 匹配除換行符以外的任何字符。
括在方括號(hào) ([]) 中的一組字符是一個(gè)單字符正則表達(dá)式,匹配該組中的任何字符。例如,“[akm]”匹配 a、 k或 m。如果在方括號(hào)中包含 ](右方括號(hào)),它必須是第一個(gè)字符。否則,它不起作用,即使您使用\]。
破折號(hào)可以表示一個(gè)字符范圍。例如,[az] 匹配任何小寫字母。
如果括號(hào)中的一組字符的第一個(gè)字符是脫字符號(hào) (^),則表達(dá)式匹配該組中除這些字符之外的任何字符。它與空字符串不匹配。例如:“[^akm]” 匹配除a、 k或 m之外的任何字符 。如果插入符號(hào)不是集合的第一個(gè)字符,它就會(huì)失去它的特殊含義。
您可以通過用字符集替換單個(gè)字符來使正則表達(dá)式不區(qū)分大小寫;例如,“[Nn][Ii][Cc][Kk]”是名稱 Nick(或 NICK,或 nick,甚至 nIcK)的不區(qū)分大小寫的模式。
您可以使用以下轉(zhuǎn)義序列來匹配特定字符或字符類:
| 轉(zhuǎn)義序列 | 火柴 | 轉(zhuǎn)義序列 | 意義 | |
|---|---|---|---|---|
| [\b] | 退格。 | \s | 以下任何空白字符:空格、制表符、換頁和換行。 | |
| \b | 單詞邊界,例如空格。 | \S | 除 \s 匹配的空白字符之外的任何字符。 | |
| \B | 非詞邊界。 | \t | 標(biāo)簽。 | |
| \cX | 控制字符 Ctrl-x。例如,\cv 匹配 Ctrl-v,這是粘貼文本的常用控制字符。 | \v | 垂直選項(xiàng)卡。 | |
| \d | 一個(gè)數(shù)字字符 [0-9]。 | \w | 一個(gè)字母數(shù)字字符或下劃線。相當(dāng)于 [A-Za-z0-9_]。 | |
| \D | 除數(shù)字外的任何字符。 | \W | \w 不匹配的任何字符。相當(dāng)于 [^A-Za-z0-9_]。 | |
| \F | 表單饋送。 | \n | 對(duì)括號(hào)中第 n 個(gè)表達(dá)式的反向引用。 | |
| \n | 換行。 |
|
ASII 字符表中由指定的八進(jìn)制數(shù)表示的字符。 | |
| \r | 回車。 | \\x十六進(jìn)制 | ASCII 字符表中由指定的十六進(jìn)制數(shù)表示的字符。 |
使用以下規(guī)則構(gòu)建多字符正則表達(dá)式:
括號(hào)將正則表達(dá)式的各個(gè)部分組合成一個(gè)子表達(dá)式,該子表達(dá)式可以被視為一個(gè)單元。例如,“(HA)+”匹配的一個(gè)或多個(gè)實(shí)例 公頃。
單字符正則表達(dá)式或后跟星號(hào) (*) 的分組子表達(dá)式匹配零次或多次出現(xiàn)的正則表達(dá)式。例如,“[az]*”匹配零個(gè)或多個(gè)小寫字符。
一個(gè)字符的正則表達(dá)式或后跟加號(hào) (+) 的分組子表達(dá)式匹配一個(gè)或多個(gè)正則表達(dá)式。例如,“[az]+”匹配一個(gè)或多個(gè)小寫字符。
一個(gè)字符的正則表達(dá)式或后跟問號(hào) (?) 的分組子表達(dá)式匹配該正則表達(dá)式的零次或一次出現(xiàn)。例如,“xy?z”匹配 xyz 或 xz。
正則表達(dá)式開頭的克拉 (^) 匹配字段的開頭。
正則表達(dá)式末尾的美元符號(hào) ($) 與字段的末尾匹配。
正則表達(dá)式的串聯(lián)會(huì)創(chuàng)建一個(gè)與相應(yīng)的字符串串聯(lián)相匹配的正則表達(dá)式。例如,“[AZ][az]*”匹配任何大寫的單詞。
OR 字符 (|) 允許在兩個(gè)正則表達(dá)式之間進(jìn)行選擇。例如,“jell(y|ies)”匹配 果凍 或 果凍。
大括號(hào) ({}) 表示正則表達(dá)式出現(xiàn)的范圍。您可以以“{m, n}”的形式使用它們,其中 m 是一個(gè)等于或大于零的正整數(shù),表示范圍的開始,而 n 等于或大于 m,表示范圍的結(jié)束。例如,“(ba){0,3}”最多匹配三對(duì)表達(dá)式 ba。形式“{m,}”要求 前面的正則表達(dá)式至少 出現(xiàn)m次。形式“{m}”要求 前面的正則表達(dá)式恰好 出現(xiàn)m次。不允許使用“{,n}”形式。
反向引用使您可以匹配先前匹配的括號(hào)組中的文本。后跟數(shù)字 n (\n) 的斜杠指的是第 n個(gè)帶括號(hào)的子表達(dá)式。
如何使用反向引用的一個(gè)例子是搜索雙字;例如,在文本中查找“the the”或“is is”的實(shí)例。以下示例顯示了正則表達(dá)式中的反向引用:
(\b[A-Za-z]+)[ ]+\1
此代碼匹配包含重復(fù)兩次的單詞的文本;也就是說,它匹配一個(gè)單詞(由\b 單詞邊界特殊字符和“[A-Za-z]+”指定)后跟一個(gè)或多個(gè)空格(由“[ ]+”指定),然后是第一個(gè)匹配的子表達(dá)式,括號(hào)中的第一個(gè)單詞。例如,它會(huì)匹配“is is”,但不會(huì)匹配“This is”。
ColdFusion 驗(yàn)證通常認(rèn)為一個(gè)值是有效的,如果其中任何一個(gè)與正則表達(dá)式模式匹配。如果要確保整個(gè)條目與模式匹配,請(qǐng)將其“錨定”到字段的開頭和結(jié)尾,如下所示:
如果插入符號(hào) (^) 位于模式的開頭,則該字段必須以與該模式匹配的字符串開頭。
如果美元符號(hào) ($) 位于模式的末尾,則該字段必須以與該模式匹配的字符串結(jié)尾。
如果表達(dá)式以插入符號(hào)開頭并以美元符號(hào)結(jié)尾,則該字段必須與模式完全匹配。
以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"使用正則表達(dá)式驗(yàn)證表單數(shù)據(jù)",希望對(duì)大家有幫助,想了解更多可查看Java在線學(xué)習(xí)。動(dòng)力節(jié)點(diǎn)在線學(xué)習(xí)教程,針對(duì)沒有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識(shí),讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)