正则只匹配0-9,输入其他的直接输入不进去

1.项目中有个input,number类型,做了层校验,如下:value是Input的value值
有人纠结这个value=value,问题不在这,正则执行了一次,之后没在执行
var value=input.value
2.var reg=new RegExp(/[0-9]/g)
if(!reg.test(value)){

input.value=value;

}
意思就是当输入的不是[0-9]的时候,让它等于它本身,但是有bug,
①直接输入‘.' 确实输入不上,但是先输入1在输入点就能输入点了了
②输入'e'或者'-'的时候,input的value值会置空,比如输入了32,然后输入e或者-,input的值就变为空了(输入别的字母没事)
③而我想的是只能输入0-9,输入别的时候直接输入不上就可以了。
④正则好像有个坑,只匹配一次


拉莫斯之舞
浏览 376回答 1
1回答

隔江千里

先保留上一次的值, 两次做比对, 如果第二次有错误字符, 把上一次的值填写input框
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript