限制一个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然后弹出个错误提示信息!
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
}
}
当然, 上面的代码将非数字的输入都屏蔽掉了, 你可以改写, 以接受其他如删除键等按钮.
脚本:
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
}
}
当然, 上面的代码将非数字的输入都屏蔽掉了, 你可以改写, 以接受其他如删除键等按钮.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯