re_n不能全为数字的问题
先声明了变量re_n 为[^\d]就是非数字,后来判断的时候又加一个!就是负负得正,为什么不就前面声明的时候就[\d]
先声明了变量re_n 为[^\d]就是非数字,后来判断的时候又加一个!就是负负得正,为什么不就前面声明的时候就[\d]
2016-05-03
隔了这么久了,但是居然都没有反对意见。这里是不应该写成/\d/g或者/[\d]/g这种形式的。
/\d/g或者/[\d]/g这种写法,调用test()方法,被检测字符串里只要有数字存在,那么就返回true,与要求不能全为数组大相庭径。例如123as,123,as123,都是ture。
写成老师这种/[^\d]/g表示存在不为数字的字符,这样写是很合理的。一个字段存在了不为数字的字符也就是不全为数字了,就是正确的。
然而连一个不为数字的字符也没有呢。也就是上面情况的否定。就是if(!re_n . test(this.value))这条语句了,就显示报错信息,不能全为数字。
如果你非要用/\d/g这种形式的话要加上出现的次数,比如出现6次就是/\d{6}/g这样就是6次出现数字,当你只输入了6次也就是全为数字了。不过这样写很麻烦,还要判断输入了多少位,倒不如就像老师这样写。
举报