input框只能输入大于0的数字,当值为0或者“”时会变成1
2015-06-17 09:44
351 查看
<input type="text" onkeyup="value=(parseInt((value=value.replace(/\D/g,''))==''||parseInt((value=value.replace(/\D/g,''))==0)?'1':value,10))" onafterpaste="value=(parseInt((value=value.replace(/\D/g,''))==''||parseInt((value=value.replace(/\D/g,''))==0)?'1':value,10))">
代码分析:
1、onKeyUp 就是键盘松开后调用的事件。
2、/\D/g 这个就是我这里用的正则表达式。头尾的/符号表示这里面包的是正则表达式;最后一个g表示全文搜索;\D是[^0-9]的简写,表示非数字的意思(因为我们要把非数字换成'')。
3、value=value.replace(/\D/g,'')先用replace方法把非数字的字符替换成'',再赋值给当前text框的value属性。
4、(parseInt((value=value.replace(/\D/g,''))==''||parseInt((value=value.replace(/\D/g,''))==0)?'1':value ,判断替换掉非数字字符后的文本是否为空或者为0,为空货位0则补1,不为空或0就是当前的值了。
5、最后调用parseInt(value,10)方法,把当前的value转成数字值,这么做是为了把类似012这样的字符前面的0去掉(测试经常挑这样的毛病,实在变态!)。这里特别要注意的是,使用parseInt方法的时候,一定要把value后的10这个参数传进去,否则像012这样的字符会被当作8进制的数字来处理的。
6、最后再把这个转换后的数字赋值给value就是了。
平时在正则方面花的功夫比较少,本想写个正则,replace下就完了,可这里是要把正则匹配的字符留下,不匹配的才replace掉,这种正则似乎不太好写,我写的都是匹配的正则,怎么反过来还不知道(有哪位知道的也希望提供个给我哦^^)。暂时还是用int转换的方式来解决吧。
代码分析:
1、onKeyUp 就是键盘松开后调用的事件。
2、/\D/g 这个就是我这里用的正则表达式。头尾的/符号表示这里面包的是正则表达式;最后一个g表示全文搜索;\D是[^0-9]的简写,表示非数字的意思(因为我们要把非数字换成'')。
3、value=value.replace(/\D/g,'')先用replace方法把非数字的字符替换成'',再赋值给当前text框的value属性。
4、(parseInt((value=value.replace(/\D/g,''))==''||parseInt((value=value.replace(/\D/g,''))==0)?'1':value ,判断替换掉非数字字符后的文本是否为空或者为0,为空货位0则补1,不为空或0就是当前的值了。
5、最后调用parseInt(value,10)方法,把当前的value转成数字值,这么做是为了把类似012这样的字符前面的0去掉(测试经常挑这样的毛病,实在变态!)。这里特别要注意的是,使用parseInt方法的时候,一定要把value后的10这个参数传进去,否则像012这样的字符会被当作8进制的数字来处理的。
6、最后再把这个转换后的数字赋值给value就是了。
平时在正则方面花的功夫比较少,本想写个正则,replace下就完了,可这里是要把正则匹配的字符留下,不匹配的才replace掉,这种正则似乎不太好写,我写的都是匹配的正则,怎么反过来还不知道(有哪位知道的也希望提供个给我哦^^)。暂时还是用int转换的方式来解决吧。
相关文章推荐
- JS学习笔记(一):关于{}和[]的使用
- android代码混淆之自定View问题
- 【转】KAFKA分布式消息系统
- Activity间数据传输
- 出大事了,据说微软要收购Docker?
- Linux基础(四):文本编辑器Vim
- UVa 11946 - Code Number
- Perl获取指定目录中的文件
- 【Selenium专题】WebDriver启动Chrome浏览器(一)
- 安卓登陆框记住密码和自动登录的实现
- 简介AngularJS的HTML DOM支持情况
- 前摄器设计模式学习笔记
- 海森矩阵 Hessian matrix
- Depthimage_to_laserscan安装并执行
- 图像预处理技术一
- leetCode(4):Insertion Sort List
- leetCode(4):Insertion Sort List 分类: leetCode 2015-06-17 09:42 205人阅读 评论(0) 收藏
- 海森矩阵 Hessian matrix
- epoll和select区别
- sqlite3 alter table