HTML5 pattern自定義驗證規則
HTML5提供非常簡便的驗證方式,對於提高開發效率非常有必要。
但是有些驗證的內建規則並不能完全滿足需求,舉兩個例子:
(1).type="number"可以限定輸入必須數字,但是不能限定輸入數字必須帶有兩個小數。
(2).type="url"可以限定輸入的必須是url,但是url不僅包含網址,也包括其他地址,只要求輸入網址怎麼辦。
上面舉得兩個例子,這是HTML5內建的規則不能完成的,由此可以看到免費的東西未必總是最好的。
HTML5也提供了彌補上述不足的解決方案,通過pattern屬性可以自定義驗證規則。
首先對pattern屬性進行一下簡單說明,然後再利用它實現前面 提到的兩個驗證。
pattern翻譯成漢語具有"模式"的意思,顧名思義,此屬性用於給表單value值規定一個模式。
它的屬性值是正規表示式,正則內容較多不是本章節介紹內容。
關於正規表示式更多內容可以參閱正規表示式教程板塊。
首先看一段程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> </head> <body> <form action="#" method="post"> <input type="text" id="txt" pattern="[a-z]{3,5}"/> <input type="submit" id="bt" value="提交表單"/> </form> </body> </html>
程式碼分析如下:
(1).pattern屬性值為"[a-z]{3,5}"。
(2).可以看到屬性值是一個正規表示式,它匹配長度介於3-5之間,由小寫字母組成的字串。
(3).文字框輸入的內容需要遵循上述正規表示式所規定的規則,否則會彈出報錯提示。
下面以輸入"Abc",為例子進行演示,很明顯不符合規則,因為有大寫字母,截圖如下:
下面來解決違章開頭提到的兩個問題,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> </head> <body> <form action="#" method="post"> <input type="text" required pattern="^[0-9]+(.[0-9]{2})$"/> <br/> <input type="url" required pattern="(http|https):\/\/([\w.]+\/?)\S*/"/> <br/> <input type="submit" id="bt" value="提交表單"/> </form> </body> </html>
程式碼分析如下:
(1).第一個文字框通過pattern屬性規定,輸入的數字必須帶有兩位小數。
(2).也許有朋友會有這樣的疑問,為什麼不將type屬性值設定為number,這是因為當屬性值為number的時候,並不具有pattern屬性,或者說設定的驗證無效。
(3).第二個文字框規定輸入的必須是網址,而不是其他型別的url。
特別說明:上面僅僅是為了演示pattern的功能,也許pattern規定的正則並不是最佳。
通過pattern屬性可以根據實際需要定製驗證規則,提高了HTML5驗證的靈活性,但是缺點依然比較明顯。
比如上述程式碼雖然定製了驗證規則,但是彈出的提示並不人性化,比如我們要求數字必須帶兩位小數,當輸入不符合要求的時候,並沒有給出明確的提示;我們想讓報錯提示不是以彈窗形式展示,而是在對應表單元素後面以文字形式提示,預設也是做不到的。不過這一切都是可以解決的,具體可以參閱HTML5 自定義表單驗證一章節。
相關文章
- HTML5 pattern自定義驗證提示HTML
- Laravel 自定義表單驗證-自定義驗證規則Laravel
- MVC驗證02-自定義驗證規則、郵件驗證MVC
- Laravel 自定義驗證規則的問題Laravel
- jQuery Validate新增自定義驗證規則jQuery
- MVC驗證04-自定義驗證規則、日期範圍驗證MVC
- 關於laravel使用自定義驗證規則後某些規則不生效Laravel
- 【Laravel】 自定義配置你的密碼驗證規則Laravel密碼
- [Laravel] 自定義配置你的密碼驗證規則Laravel密碼
- MVC驗證03-自定義驗證規則、禁止輸入某些值MVC
- MVC驗證05-自定義驗證規則、驗證2個屬性值不等MVC
- 自定義驗證規則物件( Laravel 5.5 新功能早知道)物件Laravel
- HTML5 自定義驗證資訊顯示方式HTML
- Laravel 自定義規則Laravel
- HTML5 setCustomValidity()自定義驗證資訊HTML
- HTML5 setCustomValidity() 自定義驗證資訊HTML
- zuul 自定義路由規則Zuul路由
- 使用jakarta.validation自定義校驗規則
- MVC自定義檢視規則MVC
- ETL中如何自定義規則
- Jquery Validate自定義驗證規則,一個漢字等於兩個字元長度jQuery字元
- ThinkSNS+ 是如何計算字元顯示長度的(使用 Laravel 自定義驗證規則)字元Laravel
- 關於OCLint自定義規則
- laravel: 常用的驗證規則Laravel
- Layui 自定義表單驗證UI
- element-ui自定義表單校驗規則及常用表單校驗UI
- MVC驗證07-自定義Model級別驗證MVC
- jQuery validate 自定義樣式、規則jQuery
- 自定義react資料驗證元件React元件
- 自定義密碼驗證函式密碼函式
- CAS自定義登入驗證方法
- mongoose使用validate驗證, 獲取自定義驗證資訊Go
- 自定義Mybatis自動生成程式碼規則MyBatis
- 利用Sonar定製自定義掃描規則
- 線上debug&gateway自定義路由規則Gateway路由
- jQuery Validate驗證規則的使用jQuery
- jQuery Validate驗證規則使用演示jQuery
- jQuery Validate驗證規則實質jQuery