字符串函數:搞定增強型“注冊驗證”條件設置
在上一篇的《中繼器使用場景(五):真實環(huán)境注冊、多身份登錄、找回密碼》中提到,會專門就注冊條件驗證的案例出一篇教程,今天就詳述如下:
原型參照:QQ注冊。為了集中講解,將qq昵稱注冊和郵箱賬號注冊合二為一,為大家演示。
先看演示GIF圖
功能梳理
1、昵稱不能包含中文,不能為空,失去焦點時,會出現不同的提示
2、密碼不能包含空格,長度為8-16位,包含字母、數字、特殊符號(英文半角符號)不少于2種
3、密碼框在密碼輸入變化時,實時檢測是否符合標準(留意gif圖中“灰色!”和“綠色√”圖標的變化)
4、點擊眼睛圖標,能將密碼中的“●”顯示為輸入的文本,松開鼠標時,又恢復為“●”
5、密碼框失去焦點時,如果密碼不符合規(guī)則,按優(yōu)先順序顯示錯誤提示(留意gif圖中紅色錯誤提示的出現規(guī)律)
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為數字
原型制作
第一部分 昵稱注冊驗證
元件分布
交互設置
特別說明:
- nicheng文本框和nicheng2文本框都要隱藏邊框,邊框顏色的變化靠矩形nicheng□來表現
- charAt(index)的起始位置為0而不是1,這是“LVAR1.length-1”的原因
- 當按下Backspace鍵即退格刪除鍵時,nicheng2文字==nicheng的原始文本,nicheng2比nicheng多一個字符,多的這個字符就是記錄nicheng被刪除的那個字符??聪路紾IF示例
這個交互有一定的瑕疵,就是按退格鍵時要從后向前依次刪除,能夠正常演示,如果是鼠標隨意插入到漢字的前后,進行刪除,就不能正常判斷了。
這個靠AXURE自身是解決不了的,會寫JS編碼的朋友,可以在axure中寫入JS編碼來實現。也歡迎會寫代碼的朋友,在回復中留言。
第二部分 密碼的注冊驗證
元件分布
交互設置
最后加上,密碼可見性的交互
特別說明:
為什么一定是英文半角符號,因為在實際寫代碼的過程中,當輸入密碼時,會只允許調用英文鍵盤,不會出現漢字和全角符號,所以大家在測試演示原型時,要輸入半角英文符號測試。
第三部分 郵箱地址的注冊驗證
元件分布
交互設置
特別說明:有興趣的朋友,可以將“不能含有漢字”的交互加入進去,在這里就不再贅述
第四部分 手機號碼的注冊驗證
元件分布
交互設置
特別說明:有興趣的朋友,可以將“不能含有漢字”的交互加入進去,在這里就不再贅述,還可以加入“不能有5個以上相同的數字”的交互,用Unicode判斷即可
第五部分 驗證碼的注冊驗證
元件分布
交互設置
[[Math.floor(Math.random()*10)]]? 取0-9的隨機數
[[LVAR1.charAt(Math.floor(Math.random()*52))]] 隨機截取寫有52個字母的zimu文本框中的字母
所有關于靠函數驗證注冊條件的交互完畢。
本文由 @bobowang 原創(chuàng)發(fā)布于人人都是產品經理。未經許可,禁止轉載
題圖來自 Pexels ,基于 CC0 協(xié)議
RP文件方便分享嗎?非常感謝 QQ郵箱109838147@qq.com
RP文件方便分享嗎?非常感謝 QQ郵箱1026323803@qq.com
作者您好,我剛剛按照你的原型,完成了昵稱的驗證,但是當我輸入 兩個漢字時候, 比如 : 輸入 “你好”,這時能提示錯誤信息,包含漢字,但是當我Backspace一個“好”時,剩余“你”, 就不報錯了,直接綠色對號出來了。是我哪里做錯了嗎?
rp文件方便分享下么,謝謝,15774609552@163.com
求分享源文件
十分詳細 就是很費時間。。
熟練之后,不費事,核心功能高保真,是必須的
隨機生成字母這個公式不對啊
設置對局部變量對應的元件文字
能分享下rp文件嗎,郵箱:530264140@qq.com,謝謝
確實厲害,但是太浪費時間了
絲毫不費時間,例如注冊、登陸、購物車結算、搜索、篩選、評論增刪,都是web或app的核心功能,核心功能的高保真程度,是產品整體思路的形象化。熟練掌握后,絲毫不費時間。反而是讓自己脫穎而出的關鍵。
其實,現在各廠產品的注冊登錄用的都是共享組件,基本不需要產品來進行過多的策劃。但是作為單獨講解Axure使用技巧的文章來說,確實很用心,看得出作者是一個喜歡鉆研的同學。
建議用正常流、非正常流和異常流的思路來梳理會更清晰。
作為產品經理上對著客戶,內對著技術。為什么會出axure這個軟件,就是讓產品經理能少費嘴去描述,因為要么就是沒人聽,要么就是聽不懂,再就是說不清。把真實場景呈現出來,客戶一目了然,技術全都明白。所謂交互文檔、產品文檔,都如同ppt一樣是畫花用的,誰會去看?核心功能要盡量具像化,axure表現不出來的再去標注。月薪1萬的產品經理,基本靠嘴靠圖片;月薪二萬的,能動手盡量不BB,原型動態(tài)化;月薪三萬的,客戶溝通能力一級棒,哪有坑自己心知肚明,原型哪里應該重點高保真,哪里一筆帶過,輕重明確,和技術總監(jiān)溝通在點兒上,技術想犯懶,門兒都沒有。
這個登錄注冊的,如何適配多國語言呢?某些規(guī)則,只適用于國內吧
Axure不是為中國研發(fā)的
贊同bobo同學的觀點。原型的最關鍵的一個用戶,就是指導開發(fā),確保少踩坑。我自己以前的習慣是用業(yè)務流程的思路來制作原型圖,能夠清晰的讓開發(fā)看得懂。