Go基礎學習記錄 - 編寫Web應用程 - Web開發輸入驗證(二)

前面的文章分享的部分功能都能正常使用,本次分享分析下 -- 輸入驗證前端

爲了保持項目的可學習性,我這裏將以前分享的代碼積累了下,放在github上,想要儘快入手學習的,能夠直接clone個人代碼,寫代碼不上手,都等於白搭,光看的話,對於我來講,我是不行的,沒辦法學會。git

項目地址github

https://github.com/durban89/wiki_blog
tag: 1.0.2

有些同窗可能看不懂,怎麼就只給了這些,徹底不懂呀。我把使用的命令打出來,照着操做,就應該能夠解決了正則表達式

git clone https://github.com/durban89/wiki_blog /local/path
cd /local/path
git fetch origin
git checkout 1.0.2

這些我以爲 夠清晰了。OK!typescript

繼續分享的輸入驗證的邏輯。後端

Web開發中最重要的原則之一是您不能信任客戶端用戶表單中的任何內容。
您必須在使用以前驗證全部傳入數據。
許多網站都受到這個問題的影響,這個問題既簡單又相當重要。
有兩種方法能夠驗證經常使用的表單數據。
第一個是前端的JavaScript驗證,第二個是後端的服務器驗證。
本次繼續上次分享,分享Web開發中的服務器端驗證第二部分服務器

中文

有時咱們須要用戶輸入他們的中文名稱,咱們必須驗證他們都使用中文而不是隨機字符。
對於中文驗證,正則表達式是惟一的方法。以下示例演示學習

if m, _ := regexp.MatchString("^[\\x{4e00}-\\x{9fa5}]+$", r.Form.Get("author")); m {
    fmt.Println("含有中文")
}

當提交的時候咱們給author賦值"我是中文",而後點擊Submit提交,會看到輸出以下內容fetch

author: [我是中文]
含有中文

英文字母

有時咱們須要用戶只輸入英文字母。
例如,咱們須要某人的英文名稱,好比astaxie而不是asta謝謝。
咱們能夠輕鬆使用正則表達式來執行驗證。以下示例演示網站

if m, _ := regexp.MatchString("^[a-zA-Z]+$", r.Form.Get("author")); m {
    fmt.Println("含有英文字母")
}

當提交的時候咱們給author賦值"English",而後點擊Submit提交,會看到輸出以下內容

author: [English]
含有英文字母

郵箱地址

若是您想知道用戶是否輸入了有效的電子郵件地址,可使用如下正則表達式:

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.git
tag: 1.0.3
相關文章
相關標籤/搜索