e.target.value.replace(/.../, "")解决只能输入正整数问题

phoenix-sky 社区高级成员 T9 2019-07-19 07:42:00
想要在 input 里面只能输入正整数。

因为代码环境中 e.preventDefault() 无法使用,想通过 e.target.value.replace(/.../, "") 实现。
通过 "^\\d+$" "^[0-9]*[1-9][0-9]*$" 等正则表达式可以判断正整数,但是如何通过 e.target.value.replace(/.../, "")过滤掉非正整数?

谢谢
...全文
592 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
scscms太阳光 2019-07-19
  • 打赏
  • 举报
回复
<input type="text" id="a">
    document.querySelector('#a').addEventListener('keyup',function (e){
e.target.value = e.target.value.replace(/\D+|^0/g,'')
},false)
天际的海浪 2019-07-19
  • 打赏
  • 举报
回复
引用 2 楼 phoenix.sky 的回复:
[quote=引用 1 楼 scscms太阳光 的回复:]
<input type="text" id="a">
    document.querySelector('#a').addEventListener('keyup',function (e){
e.target.value = e.target.value.replace(/\D+|^0/g,'')
},false)
这样好像可以输入:0900不匹配的数字[/quote]
/\D+|^0+/g



phoenix-sky 社区高级成员 T9 2019-07-19
  • 打赏
  • 举报
回复
引用 1 楼 scscms太阳光 的回复:
<input type="text" id="a">
    document.querySelector('#a').addEventListener('keyup',function (e){
e.target.value = e.target.value.replace(/\D+|^0/g,'')
},false)
这样好像可以输入:0900不匹配的数字

87,902

社区成员

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

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