记一个js校验只能输入数字的bug

记一个js校验只能输入数字的bug

问题

前台输入100a这样的数字js校验拦不住,导致后台保存的时候出错。js代码为

function isNum(str,name)
var reg = /^\d*$/;
if(reg.test(str)){
	return true;
}
udesk.shouwarning(name+"必须为数字")return false;

之所以拦不住是因为js里先把input里的值用paseInt函数做了处理,导致去掉了后面的字母a,所以才会每次都能校验通过,然后又导致后台报错。(写这个逻辑的人真的是该死一百次去)

解决

不想改原有的代码,一是因为感觉写的很垃圾,二是怕引起其他bug,,毕竟不是咱写的,所以在jsp页面用了一下方法

<input>
onkeyup="this.value=this.value.replace(/\D/g,'')"
onafterpaste="this.value=this.value.replace(/\D/g,'')"
<input/>

使前台根本输入不进去非数字的字符,粘贴也不行。
搞定!

扩展

js校验的正则
在这里插入图片描述https://blog.csdn.net/Mr_LuoYanan/article/details/85620339

https://blog.csdn.net/caottao9527/article/details/79170073(input正则匹配只能输入数字和指定位数小数点)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值