一直想寫這么個玩意兒的,一直沒有能排起頭眉尸。今天剛好測試測出一個bug域蜗,是一個關(guān)于正整數(shù)的表單驗(yàn)證巨双。
項(xiàng)目需求:附件數(shù)量必須是正整數(shù)噪猾。
原先使用了正則,可能是正則不夠變態(tài)筑累,反正例如空數(shù)組袱蜡,空對象,null慢宗,undefined坪蚁,NaN驗(yàn)證不了奔穿,然后驗(yàn)證不了000,這是我正則的問題敏晤,不過反正我最后推翻了正則贱田,網(wǎng)上還有使用正整數(shù)除以1一定會整除來做,也就是?number%1 === 0嘴脾∧写荩可是還是有缺陷因?yàn)檫€得判斷特殊符號和英文字母,你得確定是數(shù)字才行译打,所以得再加一層耗拓。最后我都推翻了,為了跟上潮流奏司!使用es6
var number = Number(**)
Number.isInteger(number) && number? > 0
參考element-ui 表單項(xiàng)目代碼
// 附件總數(shù)
attachNum: [? ? ? ? ? ?
????{ required: true, message: '請輸入附件總數(shù)', trigger: 'change' },? ? ? ? ? ?
????{? ? ? ? ? ? ?
????????validator(rule,value,callback){? ? ? ? ? ? ? ?
????????????if(Number.isInteger(Number(value)) && Number(value) > 0){? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?callback();? ? ? ? ? ? ? ?
????????????}else{? ? ? ? ? ? ? ? ?
????????????????????callback(new Error("請輸入有效數(shù)字"));? ? ? ? ? ? ? ?
????????????}? ? ? ? ? ? ?
????},? ? ? ? ? ? ?
????trigger: 'blur',? ? ? ? ? ?
}]
=====================================================