開篇廢話
在開發過程中經常遇到這樣的需求:用戶只能輸入數字并且只保留小數點兩位。雖然我們可以在提交表單的時候進行驗證,但是體驗不是很好。下面我主要使用了小程序input標簽的bindinput方法對輸入的值進行監聽,然后進行正則匹配。
1. input標簽
微信小程序input標簽自帶type=digit屬性,可以調起帶有小數點的數字鍵盤,maxlength屬性可以控制我們輸入字符的個數,然后我們給input標簽綁定bindinput方法。
<input type="digit" bindinput="regInput" maxlength="15"/>
2. 綁定監聽事件
bindinput方法可以監聽到當前輸入框的值,類似于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); }}
結束
這個正則表達式不是很完美,歡迎一起來優化。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答