在Vue中,判斷一個(gè)變量是否為數(shù)字并不是一件難事。Vue提供了一些常用的方法和指令來判斷變量的類型,下面介紹一些常用的方法。
//判斷是不是數(shù)字(包括整數(shù)和小數(shù)) function isNumber(val){ var regPos = /^\d+(\.\d+)?$/; //非負(fù)浮點(diǎn)數(shù) var regNeg = /^-\d+(\.\d+)?$/; //負(fù)浮點(diǎn)數(shù) if(regPos.test(val) || regNeg.test(val)){ return true; }else{ return false; } } console.log(isNumber(12)); //true console.log(isNumber(-12.3)); //true console.log(isNumber('12.3')); //true console.log(isNumber('abc')); //false
上述方法使用正則表達(dá)式判斷變量是否為數(shù)字,正則表達(dá)式regPos和regNeg分別判斷非負(fù)浮點(diǎn)數(shù)和負(fù)浮點(diǎn)數(shù)。使用test方法進(jìn)行驗(yàn)證,如果驗(yàn)證通過則返回true,否則返回false。
除了使用函數(shù)進(jìn)行判斷,Vue也提供了指令和過濾器來判斷變量類型。下面分別介紹。
//指令 Vue.directive('number',{ bind:function(el,binding,vnode){ el.oninput = function(e){ var val = e.target.value; if(isNumber(val)){ binding.value(); }else{ e.target.value = ''; } } } })//過濾器 Vue.filter('isNumber',function(val){ return isNumber(val) ? val : ''; }){{value | isNumber}}
上述指令和過濾器的實(shí)現(xiàn)都依賴于上述isNumber方法,通過指令和過濾器來判斷變量類型可以更加方便,尤其在類似表單驗(yàn)證的場(chǎng)景下使用較為方便。使用指令可以直接綁定到元素上,當(dāng)輸入框輸入不合法時(shí),直接清空輸入框;使用過濾器可以在數(shù)據(jù)展示時(shí)自動(dòng)去除非法字符。
在Vue中,判斷變量是否為數(shù)字并不是一件難事。通過上述介紹的方法,我們可以輕松地判斷變量類型并進(jìn)行相應(yīng)的處理。
上一篇vue 加 視頻 框