字符串函數:搞定增強型“注冊驗證”條件設置

17 評論 9623 瀏覽 28 收藏 8 分鐘

在上一篇的《中繼器使用場景(五):真實環境注冊、多身份登錄、找回密碼》中提到,會專門就注冊條件驗證的案例出一篇教程,今天就詳述如下:

原型參照:QQ注冊。為了集中講解,將qq昵稱注冊和郵箱賬號注冊合二為一,為大家演示。

先看演示GIF圖

功能梳理

1、昵稱不能包含中文,不能為空,失去焦點時,會出現不同的提示

2、密碼不能包含空格,長度為8-16位,包含字母、數字、特殊符號(英文半角符號)不少于2種

3、密碼框在密碼輸入變化時,實時檢測是否符合標準(留意gif圖中“灰色!”和“綠色√”圖標的變化)

4、點擊眼睛圖標,能將密碼中的“●”顯示為輸入的文本,松開鼠標時,又恢復為“●”

5、密碼框失去焦點時,如果密碼不符合規則,按優先順序顯示錯誤提示(留意gif圖中紅色錯誤提示的出現規律)

6、郵件地址不能為空,要有“.”“@”符號,不能包含中文,“.”和“@”之間要有字符,不能有兩個@

7、手機號必須是數字,必須是1開頭,必須滿11位

8、驗證碼為兩個數字兩個字母組合,每刷新一次,更換一次,隨機更換,不重復。

9、驗證碼欄不能為空,不能和驗證圖片不符

需要用到的函數

1、length:獲取當前文本對象的長度,即字符個數;1個漢字的長度按1計算。

2、charAt(index):獲取當前文本對象中指定位置的字符,index為大于等于0的整數。位置從0開始算

3、charCodeAt(index):獲取當前文本對象中指定位置字符的Unicode編碼,起始位置從0開始。

4、indexOf(‘searchValue’):從左至右獲取查詢字符串在當前文本對象中首次出現的位置。未查詢到時返回值為-1。

5、lastIndexOf(‘searchvalue’):從右至左獲取查詢字符串在當前文本對象中首次出現的位置。未查詢到時返回值為-1。

6、數字函數Math.random():隨機數函數,返回一個0~1之間的隨機數。

7、數字函數Math.floor(x):向下取整函數,獲取小于或者等于指定數值的最大整數。x為數字

原型制作

第一部分 昵稱注冊驗證

元件分布

交互設置

特別說明:

  1. nicheng文本框和nicheng2文本框都要隱藏邊框,邊框顏色的變化靠矩形nicheng□來表現
  2. charAt(index)的起始位置為0而不是1,這是“LVAR1.length-1”的原因
  3. 當按下Backspace鍵即退格刪除鍵時,nicheng2文字==nicheng的原始文本,nicheng2比nicheng多一個字符,多的這個字符就是記錄nicheng被刪除的那個字符。看下方GIF示例

這個交互有一定的瑕疵,就是按退格鍵時要從后向前依次刪除,能夠正常演示,如果是鼠標隨意插入到漢字的前后,進行刪除,就不能正常判斷了。

這個靠AXURE自身是解決不了的,會寫JS編碼的朋友,可以在axure中寫入JS編碼來實現。也歡迎會寫代碼的朋友,在回復中留言。

第二部分 密碼的注冊驗證

元件分布

交互設置

最后加上,密碼可見性的交互

特別說明:

為什么一定是英文半角符號,因為在實際寫代碼的過程中,當輸入密碼時,會只允許調用英文鍵盤,不會出現漢字和全角符號,所以大家在測試演示原型時,要輸入半角英文符號測試。

第三部分 郵箱地址的注冊驗證

元件分布

交互設置

特別說明:有興趣的朋友,可以將“不能含有漢字”的交互加入進去,在這里就不再贅述

第四部分 手機號碼的注冊驗證

元件分布

交互設置

特別說明:有興趣的朋友,可以將“不能含有漢字”的交互加入進去,在這里就不再贅述,還可以加入“不能有5個以上相同的數字”的交互,用Unicode判斷即可

第五部分 驗證碼的注冊驗證

元件分布

交互設置

[[Math.floor(Math.random()*10)]]? 取0-9的隨機數

[[LVAR1.charAt(Math.floor(Math.random()*52))]] 隨機截取寫有52個字母的zimu文本框中的字母

所有關于靠函數驗證注冊條件的交互完畢。

 

本文由 @bobowang 原創發布于人人都是產品經理。未經許可,禁止轉載

題圖來自 Pexels ,基于 CC0 協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. RP文件方便分享嗎?非常感謝 QQ郵箱109838147@qq.com

    來自上海 回復
  2. RP文件方便分享嗎?非常感謝 QQ郵箱1026323803@qq.com

    來自山東 回復
  3. 作者您好,我剛剛按照你的原型,完成了昵稱的驗證,但是當我輸入 兩個漢字時候, 比如 : 輸入 “你好”,這時能提示錯誤信息,包含漢字,但是當我Backspace一個“好”時,剩余“你”, 就不報錯了,直接綠色對號出來了。是我哪里做錯了嗎?

    來自北京 回復
  4. rp文件方便分享下么,謝謝,15774609552@163.com

    來自北京 回復
  5. 求分享源文件

    來自廣東 回復
  6. 十分詳細 就是很費時間。。

    來自美國 回復
    1. 熟練之后,不費事,核心功能高保真,是必須的

      回復
  7. 隨機生成字母這個公式不對啊

    來自浙江 回復
    1. 設置對局部變量對應的元件文字

      回復
  8. 能分享下rp文件嗎,郵箱:530264140@qq.com,謝謝

    來自貴州 回復
  9. 確實厲害,但是太浪費時間了

    來自北京 回復
    1. 絲毫不費時間,例如注冊、登陸、購物車結算、搜索、篩選、評論增刪,都是web或app的核心功能,核心功能的高保真程度,是產品整體思路的形象化。熟練掌握后,絲毫不費時間。反而是讓自己脫穎而出的關鍵。

      回復
    2. 其實,現在各廠產品的注冊登錄用的都是共享組件,基本不需要產品來進行過多的策劃。但是作為單獨講解Axure使用技巧的文章來說,確實很用心,看得出作者是一個喜歡鉆研的同學。
      建議用正常流、非正常流和異常流的思路來梳理會更清晰。

      來自浙江 回復
    3. 作為產品經理上對著客戶,內對著技術。為什么會出axure這個軟件,就是讓產品經理能少費嘴去描述,因為要么就是沒人聽,要么就是聽不懂,再就是說不清。把真實場景呈現出來,客戶一目了然,技術全都明白。所謂交互文檔、產品文檔,都如同ppt一樣是畫花用的,誰會去看?核心功能要盡量具像化,axure表現不出來的再去標注。月薪1萬的產品經理,基本靠嘴靠圖片;月薪二萬的,能動手盡量不BB,原型動態化;月薪三萬的,客戶溝通能力一級棒,哪有坑自己心知肚明,原型哪里應該重點高保真,哪里一筆帶過,輕重明確,和技術總監溝通在點兒上,技術想犯懶,門兒都沒有。

      回復
    4. 這個登錄注冊的,如何適配多國語言呢?某些規則,只適用于國內吧

      來自浙江 回復
    5. Axure不是為中國研發的

      回復
    6. 贊同bobo同學的觀點。原型的最關鍵的一個用戶,就是指導開發,確保少踩坑。我自己以前的習慣是用業務流程的思路來制作原型圖,能夠清晰的讓開發看得懂。

      來自浙江 回復