js判断是否为数字问题!

liudashao0 2015-08-16 01:12:46
我用js判断了input中输入的是否为数字
<input id="qq" type="text" oninput="checknum(this.value)">


function checknum(v){

var n=/^[1-9]\d*$|^0$/;
if(!n.test(v)){

alert("只能输入数字");
return false;

}
}

当我输入错误,删除的时候,还会alert(),这怎么解决?
...全文
480 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hch126163 2015-08-17
  • 打赏
  • 举报
回复
oninput 事件用alert 用户体验太差 onsubmit 事件使用还可以 楼主可以使用6喽的方法。替换掉非数字
-妖孽 2015-08-17
  • 打赏
  • 举报
回复
输错了就提示,有什么问题,管他还继不继续输入,要么你每次alert之后就把值清空
Muroidea 2015-08-16
  • 打赏
  • 举报
回复
var val=value. length; for(var i=0;i<val;i++) if(value. charAt(i)>'9'||value. charAt(i)<'0') alert("包涵非数字”)
liudashao0 2015-08-16
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
^(\d+)?$
判断的那么复杂干嘛,01这种输入也是能被正确的转化成1的,然后整体加个?号以支持空字符串
判断完不是数字之后,为什么还可以继续输入? 假如我输入aa alert之后,不想让它接着aa继续输入,然后选中输入的..
liudashao0 2015-08-16
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
你的删除之后就是空字符串了,你没有考虑到空字符串的情况 var n=/^[1-9]\d*$|^0$|^$/;
判断完成之后
引用 1 楼 jslang 的回复:
你的删除之后就是空字符串了,你没有考虑到空字符串的情况 var n=/^[1-9]\d*$|^0$|^$/;
判断完不是数字之后,为什么还可以继续输入? 假如我输入aa alert之后,不想让它接着aa继续输入
  • 打赏
  • 举报
回复
^(\d+)?$
判断的那么复杂干嘛,01这种输入也是能被正确的转化成1的,然后整体加个?号以支持空字符串
天际的海浪 2015-08-16
  • 打赏
  • 举报
回复
你的删除之后就是空字符串了,你没有考虑到空字符串的情况 var n=/^[1-9]\d*$|^0$|^$/;
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/391039769 只允许输入数字的话可以参考这个
天际的海浪 2015-08-16
  • 打赏
  • 举报
回复
引用 3 楼 liudashao0 的回复:
[quote=引用 1 楼 jslang 的回复:] 你的删除之后就是空字符串了,你没有考虑到空字符串的情况 var n=/^[1-9]\d*$|^0$|^$/;
判断完成之后
引用 1 楼 jslang 的回复:
你的删除之后就是空字符串了,你没有考虑到空字符串的情况 var n=/^[1-9]\d*$|^0$|^$/;
判断完不是数字之后,为什么还可以继续输入? 假如我输入aa alert之后,不想让它接着aa继续输入[/quote]

<input id="qq" type="text" oninput="checknum(this)">
<script type="text/javascript">
function checknum(t) {
	t.value = t.value.replace(/^0+|\D/g,"");
}

87,955

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧