为了账号安全,请及时绑定邮箱和手机立即绑定

re_n不能全为数字的问题

先声明了变量re_n 为[^\d]就是非数字,后来判断的时候又加一个!就是负负得正,为什么不就前面声明的时候就[\d]

正在回答

3 回答

隔了这么久了,但是居然都没有反对意见。这里是不应该写成/\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次也就是全为数字了。不过这样写很麻烦,还要判断输入了多少位,倒不如就像老师这样写。

3 回复 有任何疑惑可以回复我~
#1

CC猫

多谢,明白了!
2016-06-12 回复 有任何疑惑可以回复我~

我也感觉奇怪,为什么非要后面又反回来,莫非老师嫌代码量不多

0 回复 有任何疑惑可以回复我~

可以啊,每个人逻辑不一样而已

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
表单验证
  • 参与学习       53334    人
  • 解答问题       253    个

表单验证是JavaScript中的高级选项之一,输入框的验证

进入课程

re_n不能全为数字的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信