永发信息网

限制一个text(html),输入内容只能是数字,第一数字不能为0.

答案:3  悬赏:40  手机版
解决时间 2021-01-09 18:52
  • 提问者网友:斑駁影
  • 2021-01-09 02:52
限制一个text(html),输入内容只能是数字,第一数字不能为0.
最佳答案
  • 五星知识达人网友:青尢
  • 2021-01-09 03:22
我看了下是你的正则写错了,你可以写个函数在onkeyup时调用来完成这个功能,这样看起来可读性也好,代码如下:
function valiNum(){
var str = $("#Text4").val();
if(/^\d$/.test(str)){ //验证是否纯数字
str = str.replace(/^0*/g,''); //把开头的N个0替换成空
$("#Text4").val(str); //把值赋给input

}
}追问直接用onkeyup调用就可以了吗?怎么什么都过滤不掉?追答你的 onkeyup="valiNum();" 是这么写的吗?还有忘了问了,你用的是不是JQuery?如果不是的话你可以导入这个JQuery包(jquery-1.7.2.min.js,然后又把验证纯数字的正则改成  /^[0-9]d*$/  ,
这样之前的代码就没问题了!如果不想导入JQuery包的话,那么原生JS函数可以这么写:
function valiNum(){
    var str = document.getElementById("Text4").value;
    if(/^[0-9]d*$/.test(str)){                     //验证是否纯数字
        str = str.replace(/^0*/g,'');    //把开头的N个0替换成空
        document.getElementById("Text4").value = str;            //把值赋给input
    }
}记得调用啊!这个我已经测过了,没问题的!希望帮到你!

追问是的,首字符不为0可以用 不过能不能在输入时直接过滤非数字字符 我试了一下 非数字字符还是可以输入的 谢谢!追答是的,这里只给你写了过滤以0为开始,如果是非数字的话,可以在if后价格else然后弹出个错误提示信息!
全部回答
  • 1楼网友:时间的尘埃
  • 2021-01-09 05:49
js判断是否为数字 字符串截取第一个 判断是否为0追问我是这样写的,你帮我修改一下,或者是直接写一个也可以。
  • 2楼网友:野味小生
  • 2021-01-09 04:45
你应该处理text的onkeydown事件, 判读输入的keyCode值, 如果text内容为空且输入是0, 则返回false,文本框不接受输入; text内容不为空则在输入非数字时返回false, 其他返回true. 对应粘贴的处理大概就保持你原本的代码.
脚本:
function OnKey(evt, o) {
if (evt == null) {
evt = window.event;
}
if (o.value == "") {
return evt.keyCode > 48 && evt.keyCode <= 58;
}
else {
return evt.keyCode >= 48 && evt.keyCode <= 58
}
}
当然, 上面的代码将非数字的输入都屏蔽掉了, 你可以改写, 以接受其他如删除键等按钮.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯