鍍金池/ 問答/iOS  HTML/ ios輸入金額小數(shù)點時正則驗證失?。?/span>

ios輸入金額小數(shù)點時正則驗證失敗?

我有一個正則:var tamp = /^(1-9{0,7}|0)(.[d]{1,2})?$/;有一個input的oninput輸入框事件通過它來驗證驗證輸入的字符是否正確,在android上正常,在chrome上正常,但是在ios上,輸入到“0.”的時候就不符合tamp正則了,同樣的一個小數(shù)點,為什么android和chrome上正常,ios上就會報錯呢?求解答

回答
編輯回答
殘淚

是這樣的,在安卓和chrome下,<input type="number">的情況下,輸入0.的時候,會將這個值記為0;而在iOS,會將這個值記為0.。由于你后面匹配的是\.[\d]{1,2},小數(shù)點后必定要跟數(shù),導(dǎo)致iOS匹配不成功,因而報錯。
另外,在type="number"的情況下,maxlength屬性不會生效。

2017年11月10日 13:05
編輯回答
吢丕

現(xiàn)在我的驗證方式是不實時監(jiān)聽輸入框的oninput事件,而是在用戶輸入完成后再去驗證用戶輸入的格式,雖然也能用,但是測試妹子每次拿“0.00---”這樣的輸入字符來搞事情(僅管這類的非法輸入最終提交的時候不會通過驗證),我很郁悶。有誰有更好的方法,或者有更好的驗證方式?請指教一下小弟啊

2017年4月28日 01:37