前面的文章分享的部分功能都能正常使用,本次分享分析下 -- 輸入驗證
為了保持項目的可學習性,我這裡將之前分享的代碼積累了下,放在github上,想要儘快入手學習的,可以直接cloneMy Code,寫代碼不上手,都等於白搭,光看的話,對於我來說,我是不行的,沒辦法學會。
項目地址
https://github.com/durban89/wiki_blogtag: 1.0.2
有些同學可能看不懂,怎麼就只給了這些,完全不懂呀。我把使用的命令打出來,照著操作,就應該可以解決了
git clone https://github.com/durban89/wiki_blog /local/pathcd /local/pathgit fetch origingit checkout 1.0.2
這些我覺得 夠清晰了。OK!
繼續分享的輸入驗證的邏輯。
Web開發中最重要的原則之一是您不能信任用戶端使用者表單中的任何內容。
您必須在使用之前驗證所有傳入資料。
許多網站都受到這個問題的影響,這個問題既簡單又至關重要。
有兩種方法可以驗證常用的表單資料。
第一個是前端的JavaScript驗證,第二個是後端的伺服器驗證。
本次繼續上次分享,分享Web開發中的伺服器端驗證第二部分
中文
有時我們需要使用者輸入他們的中文名稱,我們必須驗證他們都使用中文而不是隨機字元。
對於中文驗證,Regex是唯一的方法。如下樣本示範
if m, _ := regexp.MatchString("^[\\x{4e00}-\\x{9fa5}]+$", r.Form.Get("author")); m { fmt.Println("含有中文")}
當提交的時候我們給author賦值"我是中文",然後點擊Submit提交,會看到輸出如下內容
author: [我是中文]含有中文
英文字母
有時我們需要使用者只輸入英文字母。
例如,我們需要某人的英文名稱,比如astaxie而不是asta謝謝。
我們可以便於使用Regex來執行驗證。如下樣本示範
if m, _ := regexp.MatchString("^[a-zA-Z]+$", r.Form.Get("author")); m { fmt.Println("含有英文字母")}
當提交的時候我們給author賦值"English",然後點擊Submit提交,會看到輸出如下內容
author: [English]含有英文字母
郵箱地址
如果您想知道使用者是否輸入了有效電子郵件地址,可以使用以下Regex:
if m, _ := regexp.MatchString(`^([\w\.\_]{2,10})@(\w{1,}).([a-z]{2,4})$`, r.Form.Get("author")); m { fmt.Println("正確的郵箱地址")}
當提交的時候我們給author賦值"xxxx@qq.com",然後點擊Submit提交,會看到輸出如下內容
author: [xxxx@qq.com]正確的郵箱地址
項目更新地址
https://github.com/durban89/typescript_demo.gittag: 1.0.3