詳解微信小程序input標(biāo)簽正則初體驗
開篇廢話
在開發(fā)過程中經(jīng)常遇到這樣的需求:用戶只能輸入數(shù)字并且只保留小數(shù)點兩位。雖然我們可以在提交表單的時候進(jìn)行驗證,但是體驗不是很好。下面我主要使用了小程序input標(biāo)簽的bindinput方法對輸入的值進(jìn)行監(jiān)聽,然后進(jìn)行正則匹配。
1. input標(biāo)簽
微信小程序input標(biāo)簽自帶type=digit屬性,可以調(diào)起帶有小數(shù)點的數(shù)字鍵盤,maxlength屬性可以控制我們輸入字符的個數(shù),然后我們給input標(biāo)簽綁定bindinput方法。
<input type="digit" bindinput="regInput" maxlength="15"/>
2. 綁定監(jiān)聽事件
bindinput方法可以監(jiān)聽到當(dāng)前輸入框的值,類似于onchange事件,但不太一樣。通過e.detail.value可以獲取到input的值,return返回的字符串可以替換掉輸入的字符串。
3. 正則匹配
匹配正則通過則返回所有字符,不通過則去掉最后一個不匹配的字符返回。
/*正則匹配*/ regInput(e){ if(/^(\d?)+(\.\d{0,2})?$/.test(e.detail.value)){ return e.detail.value; }else { return e.detail.value.substring(0,e.detail.value.length-1); } }
結(jié)束
這個正則表達(dá)式不是很完美,歡迎一起來優(yōu)化。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
子窗口、父窗口和Silverlight之間的相互調(diào)用
前兩天做 silverlight 的東西,主頁面打開一個子頁面,然后子頁面中包含一個 silverlight 應(yīng)用程序那難免會涉及到他們?nèi)呦嗷フ{(diào)用的問題2010-08-08typescript中type和interface的區(qū)別有哪些
大家使用typescript總會使用到interface和type,所以下面這篇文章主要給大家介紹了關(guān)于typescript中type和interface區(qū)別的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-02-02