本發(fā)明涉及網(wǎng)頁開發(fā)技術領域,特別是涉及一種輸入字符檢測的方法和裝置。
背景技術:
當移動端Web App因業(yè)務場景需要用戶只能在輸入框處輸入實數(shù)的時候,在HTML5的標簽input處采取type=number使得彈出的鍵盤為數(shù)字鍵盤,當用戶輸入非法字符時所獲取的input標簽的值為空,這將無法判斷此時用戶是輸入空值還是非法字符,導致提示不明確而影響用戶的輸入效率。傳統(tǒng)的解決方法是通過用input標簽的type=tel類型代替type=number類型,其中,tel輸入類型是指包含電話號碼的輸入字段。采用type=tel類型代替type=number時,雖然輸入非法字符時,所取得的值并不會被清空,但是這種情況下用戶只能輸入整數(shù)數(shù)字,用戶如果想輸入浮點類型的數(shù)字時需要切換輸入法,增加了操作的復雜性,同樣會降低了用戶輸入的效率。
技術實現(xiàn)要素:
基于此,為了解決上述問題,提出了一種提高用戶輸入效率的輸入字符檢測的方法和裝置。
一種輸入字符檢測的方法,所述方法包括:獲取處于焦點的輸入框,提取所述輸入框的類型;當所述輸入框的類型為數(shù)字類型時,開啟監(jiān)聽鍵盤事件,所述監(jiān)聽鍵盤事件用于實時獲取用戶輸入的內(nèi)容;通過所述輸入框接收輸入的內(nèi)容,檢測所述輸入的內(nèi)容是否合法;若否,則根據(jù)所述監(jiān)聽鍵盤事件中獲取到的內(nèi)容確定非法輸入的原因并進行相應的提示。
在其中一個實施例中,所述通過所述輸入框接收輸入的內(nèi)容,檢測所述輸入的內(nèi)容是否合法的步驟包括:通過所述輸入框接收輸入的內(nèi)容,檢測獲取到的內(nèi)容是否為空;若是,則判定所述輸入的內(nèi)容非法,若否,則判定所述輸入的內(nèi)容合法。
在其中一個實施例中,所述根據(jù)所述監(jiān)聽鍵盤事件中獲取到的內(nèi)容確定非法輸入的原因并進行相應的提示的步驟包括:根據(jù)所述監(jiān)聽鍵盤事件中獲取到的內(nèi)容,確定非法輸入的原因;根據(jù)確定的所述非法輸入的原因獲取對應的提示語,將所述提示語進行展示。
在其中一個實施例中,所述通過所述輸入框接收輸入的內(nèi)容,檢測所述輸入的內(nèi)容是否合法的步驟包括:通過所述輸入框接收當前輸入的內(nèi)容,判斷當前輸入的內(nèi)容是否合法,若否,則進入根據(jù)所述監(jiān)聽鍵盤事件中獲取到的內(nèi)容確定非法輸入的原因并進行相應的提示的步驟;或通過所述輸入框接收輸入的內(nèi)容,當確定全部輸入完成后,判斷輸入的內(nèi)容是否全部合法,若否,則進入根據(jù)所述監(jiān)聽鍵盤事件中獲取到的內(nèi)容確定非法輸入的原因并進行相應的提示的步驟。
在其中一個實施例中,所述通過所述輸入框接收輸入的內(nèi)容,檢測所述輸入的內(nèi)容是否合法的步驟之后還包括:若是,則獲取與所述輸入框類型對應的正則表達式;根據(jù)所述正則表達式判斷所述輸入的字符是否符合預設的條件;若符合預設的條件,則保存所述輸入的內(nèi)容。
一種輸入字符檢測的裝置,所述裝置包括:提取模塊,用于獲取處于焦點的輸入框,提取所述輸入框的類型;開啟模塊,用于當所述輸入框的類型為數(shù)字類型時,開啟監(jiān)聽鍵盤事件,所述監(jiān)聽鍵盤事件用于實時獲取用戶輸入的內(nèi)容;檢測模塊,用于通過所述輸入框接收輸入的內(nèi)容,檢測所述輸入的內(nèi)容是否合法;提示模塊,用于若檢測到所述輸入的內(nèi)容不合法,則根據(jù)所述監(jiān)聽鍵盤事件中獲取到的內(nèi)容確定非法輸入的原因并進行相應的提示。
在其中一個實施例中,所述檢測模塊還用于通過所述輸入框接收輸入的內(nèi)容,檢測獲取到的內(nèi)容是否為空,若是,則判定所述輸入的內(nèi)容非法,若否,則判定所述輸入的內(nèi)容合法。
在其中一個實施例中,所述提示模塊包括:確定模塊,用于根據(jù)所述監(jiān)聽鍵盤事件中獲取到的內(nèi)容,確定非法輸入的原因;反饋模塊,用于根據(jù)確定的所述非法輸入的原因獲取對應的提示語,將所述提示語進行展示。
在其中一個實施例中,所述檢測模塊還用于通過所述輸入框接收當前輸入的內(nèi)容,判斷當前輸入的內(nèi)容是否合法,若否,則通知提示模塊進入根據(jù)所述監(jiān)聽鍵盤事件中獲取到的內(nèi)容確定非法輸入的原因并進行相應的提示;或通過所述輸入框接收輸入的內(nèi)容,當確定全部輸入完成后,判斷輸入的內(nèi)容是否全部合法,若否,則通知提示模塊進入根據(jù)所述監(jiān)聽鍵盤事件中獲取到的內(nèi)容確定非法輸入的原因并進行相應的提示。
在其中一個實施例中,所述裝置還包括:獲取模塊,用于若所述輸入的內(nèi)容合法,則獲取與所述輸入框類型對應的正則表達式;判斷模塊,用于根據(jù)所述正則表達式判斷所述輸入的內(nèi)容是否符合預設的條件,若符合預設的條件,則保存所述輸入的內(nèi)容。
上述字符輸入檢測的方法和裝置,通過獲取處于焦點的輸入框,提取輸入框的類型,當輸入框的類型為數(shù)字類型時,開啟監(jiān)聽鍵盤事件,監(jiān)聽鍵盤事件用于實時獲取用戶輸入的內(nèi)容,通過輸入框接收輸入的內(nèi)容,檢測所述輸入的內(nèi)容是否合法,若否,則根據(jù)監(jiān)聽鍵盤事件中獲取到的內(nèi)容確定非法輸入的原因并進行相應的提示。該輸入字符檢測的方法通過開啟監(jiān)聽鍵盤事件獲取用戶輸入的內(nèi)容,然后根據(jù)獲取到的內(nèi)容來確定用戶非法輸入的原因,進而進行相應的明確提示,由于對輸入非法的原因進行了明確的提示,用戶可以根據(jù)提示找到問題所在,進而可以有針對性的及時更正,從而提高了用戶輸入的效率。
附圖說明
圖1為一個實施例輸入字符檢測的方法流程圖;
圖2為一個實施例中根據(jù)監(jiān)聽鍵盤事件中獲取到的內(nèi)容進行提示的方法流程圖;
圖3為另一個實施例中輸入字符檢測的方法流程圖;
圖4為一個實施例中輸入字符檢測的裝置結構框圖;
圖5為一個實施例中提示模塊的結構框圖;
圖6為另一個實施例中輸入字符檢測的裝置結構框圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,在一個實施例中,提出了一種輸入字符檢測的方法,該方法應用于移動端的Web App,具體包括如下步驟:
步驟102,獲取處于焦點的輸入框,提取輸入框的類型。
在本實施例中,輸入框的類型是指輸入框的<input>標簽的類型,即允許在輸入框輸入的字符類型。在開發(fā)階段,會為每個輸入框設置一個<input>標簽的類型,輸入框常見的<input>標簽的type類型有三種,一種是type=text(文本),一種是type=tel(電話號碼),一種是type=number(數(shù)字)。具體的,當移動端用戶點擊輸入框時,輸入框便處于焦點,提取該輸入框的類型,當獲取到輸入框的類型為數(shù)字類型時,彈出供用戶輸入的數(shù)字鍵盤。
步驟104,當輸入框的類型為數(shù)字類型時,開啟監(jiān)聽鍵盤事件,監(jiān)聽鍵盤事件用于實時獲取用戶輸入的內(nèi)容。
在本實施例中,當獲取到的輸入框的類型為數(shù)字類型時,開啟監(jiān)聽鍵盤事件。監(jiān)聽鍵盤事件可以監(jiān)聽鍵盤動作,實現(xiàn)鍵盤記錄,用于實時獲取用戶輸入的內(nèi)容。移動端的鍵盤都有一些系統(tǒng)的事件,比如,keydown,keypress、keyup等等,通過綁定這些系統(tǒng)的事件,當用戶觸發(fā)這個事件時,就可以通過重寫回調(diào)的方法獲取鍵盤的結果。具體的,預先與系統(tǒng)中的keydown事件進行綁定,當獲取到輸入框的input標簽類型為數(shù)字類型時,觸發(fā)開啟監(jiān)聽鍵盤事件。當用戶按下鍵盤觸發(fā)keydown事件時,獲取用戶按下的對應的鍵盤碼,并將該鍵盤碼進行記錄。通過開啟鍵盤事件就可以實時的獲取用戶輸入的字符并記錄相應的鍵盤動作。
步驟106,通過輸入框接收輸入的內(nèi)容,檢測輸入的內(nèi)容是否合法,若否,則進入步驟108,若是,則進入步驟109。
在本實施例中,用戶通過當前的輸入框進行字符的輸入,移動端通過該輸入框接收到用戶輸入的內(nèi)容,檢測獲取到的<input>標簽的值是否為空,若獲取到的值為空,則說明輸入的字符類型不合法,即輸入了非法的字符或者輸入了空值。為了進一步判斷是輸入了非法的字符還是輸入了空值,就需要去獲取監(jiān)聽鍵盤事件中獲取到的內(nèi)容來確定具體的非法輸入的原因。若獲取到的值不為空,則說明輸入的字符類型合法,將該輸入的字符進行保存。
步驟108,根據(jù)監(jiān)聽鍵盤事件中獲取到的內(nèi)容確定非法輸入的原因并進行相應的提示。
具體的,根據(jù)所述監(jiān)聽鍵盤事件中獲取到的輸入的內(nèi)容,檢測非法輸入的原因,若監(jiān)聽鍵盤事件中獲取到了輸入的字符,則說明輸入了非法類型的字符,若監(jiān)聽鍵盤事件中沒有獲取到相應的字符,則說明輸入了空值。確定了對應的非法輸入的原因后,根據(jù)該非法輸入的原因獲取對應的預先存儲的提示語,然后將該提示語進行反饋提示,便于用戶及時了解非法輸入的原因,進而有針對性的進行改正,從而提高了用戶輸入的效率。
步驟109,保存輸入的內(nèi)容。
在本實施例中,若檢測到輸入的內(nèi)容合法,說明輸入的字符為數(shù)字類型,保存該輸入的內(nèi)容。
在本實施例中,通過獲取處于焦點的輸入框,提取輸入框的類型,當輸入框的類型為數(shù)字類型時,開啟監(jiān)聽鍵盤事件,監(jiān)聽鍵盤事件用于實時獲取用戶輸入的內(nèi)容,通過輸入框接收輸入的內(nèi)容,檢測所述輸入的內(nèi)容是否合法,若否,則根據(jù)監(jiān)聽鍵盤事件中獲取到的內(nèi)容確定非法輸入的原因并進行相應的提示。該輸入字符檢測的方法通過開啟監(jiān)聽鍵盤事件獲取用戶輸入的內(nèi)容,然后根據(jù)獲取到的內(nèi)容來確定用戶非法輸入的原因,進而進行相應的明確提示,由于對輸入非法的原因進行了明確的提示,用戶可以根據(jù)提示找到問題所在,進而可以有針對性的及時更正,從而提高了用戶輸入的效率。
在一個實施例中,通過輸入框接收輸入的內(nèi)容,檢測輸入的內(nèi)容是否合法的步驟包括:通過所述輸入框接收輸入的內(nèi)容,檢測獲取到的內(nèi)容是否為空;若是,則判定所述輸入的內(nèi)容非法,若否,則判定所述輸入的內(nèi)容合法。
在本實施例中,通過輸入框接收輸入的內(nèi)容,通過檢測獲取到的<input>標簽的值是否為空值來判斷輸入的內(nèi)容是否合法,若檢測到的內(nèi)容為空,說明輸入的內(nèi)容不是數(shù)字字符,則判定該輸入的內(nèi)容非法,若檢測到的內(nèi)容不為空,則說明輸入的內(nèi)容為數(shù)字類型,則判斷該輸入的內(nèi)容合法。假設判定輸入的內(nèi)容非法,那么具體是因為輸入了非法的字符類型還是因為輸入了空值,還需要根據(jù)監(jiān)聽鍵盤事件中獲取到的輸入內(nèi)容進行進一步判斷。
如圖2所示,在一個實施例中,所述根據(jù)所述監(jiān)聽鍵盤事件中獲取到的字符確定非法輸入的原因并進行相應的提示的步驟包括:
步驟108A,根據(jù)監(jiān)聽鍵盤事件中獲取到的內(nèi)容,確定非法輸入的原因。
在本實施例中,根據(jù)監(jiān)聽鍵盤事件中獲取到的內(nèi)容,檢測輸入非法的原因。具體的,在HTML5中,當輸入框的類型type=number時,通過輸入框獲取到的為空值時,說明用戶輸入了非法字符類型或者輸入了空值,通過監(jiān)聽鍵盤事件中獲取到的內(nèi)容來檢測到底是輸入了非法字符類型還是輸入了空值,當監(jiān)聽鍵盤事件中獲取到了輸入的字符,說明輸入了非法的字符類型,此時提示用戶輸入的內(nèi)容中出現(xiàn)了非數(shù)字的字符類型;當監(jiān)聽鍵盤事件中也沒有獲取到輸入的字符時,說明用戶輸入了空值,那么就可以提醒用戶輸入了空值。
步驟108B,根據(jù)確定的非法輸入的原因獲取對應的提示語,將提示語進行展示。
在本實施例中,當獲取到輸入非法的原因后,根據(jù)確定的原因獲取對應的提示語,然后將獲取到的提示語進行展示。具體的,系統(tǒng)預先預存了兩種提示語,一種是“輸入了非法的字符類型”,一種是“輸入了空值”,分別將這兩種提示語與對應的原因進行對應存儲。當獲取到用戶輸入內(nèi)容非法的原因是因為輸入了非法字符類型,那么就獲取與之對應的提示語“輸入了非法的字符類型”,同樣的,當獲取到用戶輸入內(nèi)容非法的原因是因為輸入了空值,獲取與之對應的提示語為“輸入了空值”。
在一個實施例中,通過輸入框接收輸入的內(nèi)容,檢測輸入的內(nèi)容是否合法的步驟包括:通過輸入框接收當前輸入的內(nèi)容,判斷當前輸入的內(nèi)容是否合法,若否,則進入根據(jù)監(jiān)聽鍵盤事件中獲取到內(nèi)容確定非法輸入的原因并進行相應的提示。
在本實施例中,設置提示配置項,對當前輸入的內(nèi)容進行實時檢測。具體的,實時檢測輸入的內(nèi)容是否合法,若檢測到輸入的內(nèi)容非法,則通過監(jiān)聽鍵盤事件獲取用戶輸入的內(nèi)容,進而根據(jù)獲取的內(nèi)容判斷非法輸入的原因,并進行相應的提示。若檢測到當前輸入的內(nèi)容合法,則繼續(xù)獲取用戶輸入的內(nèi)容。通過對用戶輸入的字符進行實時的檢測,當輸入的內(nèi)容不合法時立即進行提醒,有利于用戶實時了解自己輸入的情況,從而進一步提高輸入的效率。
在一個實施例中,通過輸入框接收輸入的內(nèi)容,當確定全部輸入完成后,判斷輸入的內(nèi)容是否全部合法,若否,則進入根據(jù)監(jiān)聽鍵盤事件中獲取到的內(nèi)容確定非法輸入的原因并進行相應的提示。
在本實施例中,通過設置提示配置項,當用戶輸入完成或提交數(shù)據(jù)時再對用戶是否輸入了非法字符進行檢測提醒。具體的,通過輸入框接收輸入的字符,當確定輸入完成后,再判斷之前輸入的內(nèi)容是否全部合法,如果不是,則通過鍵盤監(jiān)聽事件中記錄的內(nèi)容判斷出現(xiàn)非法輸入的原因,然后獲取相應的提示語,將獲取到的提示語進行反饋提醒。這樣用戶在提交數(shù)據(jù)時,如果里面有非法內(nèi)容,就可以根據(jù)明確的提示進行檢查,以便輸入正確的字符,提高了字符輸入的效率。
如圖3所示,在一個實施例中,判斷輸入的字符是否為合法的字符類型,若是,則進入步驟110。
步驟110,獲取與輸入框類型對應的正則表達式。
具體的,預先設置輸入框類型與正則表達式之間的對應關系,當獲取到輸入框類型后,就可以確定與該輸入框?qū)恼齽t表達式。其中,正則表達式使用單個字符串來描述,匹配一系列符合某個句法規(guī)則的字符串,在很多文本編輯器里,正則表達式通常被用來檢索、替換那些符合某個模式的文本。許多程序設計語言都支持利用正則表達式進行字符串操作。在本實施例中,正則表達式用來對輸入的內(nèi)容進行限制,只有符合預設的正則表達式,才對輸入的內(nèi)容進行保存。比如,可以對輸入的數(shù)字的范圍進行限制,只允許輸入1-5之間的數(shù)字,這樣的話,當輸入了別的數(shù)字(比如6)時,就視為輸入了不符合正則表達式的內(nèi)容。
步驟112,根據(jù)所述正則表達式判斷所述輸入的字符是否符合預設的條件,若符合預設的條件,則進入步驟109,若不符合要求,清空輸入的內(nèi)容。
在本實施例中,根據(jù)獲取到的與輸入框類型對應的正則表達式來判斷輸入的字符是否符合要求,只有符合要求才對輸入的內(nèi)容進行保存,否則,清空輸入的內(nèi)容。具體的,預先設置正則表達式,比如,正則表達式只允許輸入到小數(shù)點后兩位,那么當輸入小數(shù)點后第三位時,則判定不符合正則表達式的要求,對輸入的內(nèi)容進行清空,要求用戶重寫進行輸入。通過判斷輸入的內(nèi)容是否符合預設的正則表達式可以及時的對用戶輸入的內(nèi)容進行檢測,有利于進一步提高用戶的輸入效率。
如圖4所示,提出了一種輸入字符檢測的裝置,該裝置包括:
提取模塊402,用于獲取處于焦點的輸入框,提取輸入框的類型。
開啟模塊404,用于當輸入框的類型為數(shù)字類型時,開啟監(jiān)聽鍵盤事件,監(jiān)聽鍵盤事件用于實時獲取用戶輸入的內(nèi)容。
檢測模塊406,用于通過輸入框接收輸入的內(nèi)容,檢測輸入的內(nèi)容是否合法。
提示模塊408,用于若檢測到輸入的內(nèi)容不合法,則根據(jù)監(jiān)聽鍵盤事件中獲取到的內(nèi)容確定非法輸入的原因并進行相應的提示。
在一個實施例中,檢測模塊還用于通過輸入框接收輸入的內(nèi)容,檢測獲取到的內(nèi)容是否為空,若是,則判定輸入的內(nèi)容非法,若否,則判定輸入的內(nèi)容合法。
如圖5所示,在一個實施例中,提示模塊408包括:
確定模塊408A,用于根據(jù)監(jiān)聽鍵盤事件中獲取到的內(nèi)容,確定非法輸入的原因;
展示模塊408B,用于根據(jù)確定的非法輸入的原因獲取對應的提示語,將提示語進行展示。
在一個實施例中,檢測模塊還用于通過輸入框接收當前輸入的內(nèi)容,判斷當前輸入的內(nèi)容是否合法,若否,則通知提示模塊進入根據(jù)監(jiān)聽鍵盤事件中獲取到的內(nèi)容確定非法輸入的原因并進行相應的提示。
在一個實施例中,檢測模塊還用于通過輸入框接收輸入的內(nèi)容,當確定全部輸入完成后,判斷輸入的內(nèi)容是否全部合法,若否,則通知提示模塊進入根據(jù)監(jiān)聽鍵盤事件中獲取到的內(nèi)容確定非法輸入的原因并進行相應的提示。
如圖6所示,在一個實施例中,上述輸入字符檢測的裝置還包括:
獲取模塊410,用于若輸入的內(nèi)容合法,則獲取與輸入框類型對應的正則表達式;
判斷模塊412,用于根據(jù)正則表達式判斷輸入的字符是否符合預設的條件,若符合預設的條件,則保存輸入的字符。
以上所述實施例的各技術特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術特征所有可能的組合都進行描述,然而,只要這些技術特征的組合不存在矛盾,都應當認為是本說明書記載的范圍。
以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對本發(fā)明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應以所附權利要求為準。