如何用onkeyup验证input框只能输入开头不为零的正整数

这个onkeyup="this.value=this.value.replace(/[^0-9]/g,'')"不能验证以零开头,其他都可以验证... 这个onkeyup="this.value=this.value.replace(/[^0-9]/g,'')" 不能验证以零开头,其他都可以验证 展开
 我来答
starwind
2017-06-20 · 知道合伙人软件行家
starwind
知道合伙人软件行家
采纳数:33 获赞数:111
web前端主力开发

向TA提问 私信TA
展开全部

首先纠正点东西

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

也就是说题主在使用空字符串去替换符合[0-9]的数字,

其次,一般^都是这样写的/^[0-9]/。

如果是按照题意去匹配开头不为零的正整数

/^[1-9]{1}[0-9]*$/  //这样的正则就可以满足,但如果是用replace方法的话去写的话,就要逆向去写了。

建议使用match方法

<!DOCTYPE html>
<html>
<body>
<input type="number" id="myInput">
<script>
    const myInput = document.getElementById('myInput')
    myInput.onkeyup=function () {
            this.value=this.value.match(/^[1-9]{1}[0-9]*$/)
    }
</script>
</body>
育知同创教育
2017-06-20 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
用onkeyup来控制一个input只能输入大于0的正整数:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>JK的普通输入验证示例</title>
<style>
td{font-size:12px}
</style>
<script language="Javascript" src="commonForManage.js"></script>
</head>
<body style="font-size:12px">
<table align=center style="border: 1 solid #000000" style="font-size:12px;width:90%">
<form name=frm onsubmit="return checkNecessaryInput(this);" method=post >
<tr><td>数值1<font color=red>*</font><input name=a alt="数值1" onblur="checkDecimalInput(this)" ></td>
<td>数值2:<input name=b onblur="checkDecimalInput(this,-1,1)" >(大于-1,小于1)</td>
<td>数值3:<input name=b onblur="checkDecimalInput(this,-0.0000001,1.0000001)" >(大于或等于0,小于蔌等于1)</td>
</tr>
<tr><td>整数1<font color=red>*</font><input name=a alt="整数1" onblur="checkIntInput(this)" ></td>
<td>整数2:<input name=b onblur="checkIntInput(this,-100,100)" >(大于-100,小于100)</td>
<td>整数3:<font size=-3><input name=b onblur="checkIntInput(this,-0.0000001,100.0000001)" ></font>(大于或等于0,小于或等于0)</td>
</tr>
<tr><td>日期1<font color=red>*</font><input name=a alt="日期1" onblur="checkDateInput(this)" ondblclick="getDateFromDialog(this);"></td>
<td>日期2:<input name=b onblur="checkDateInput(this)" ondblclick="getDateFromDialog(this);"></td>
<td>注:双击输入框可以弹出日历</td>
</tr>
<tr><td>编号1<font color=red>*</font><input name=a alt="编号1" onblur="checkNoInput(this)" ></td>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yjx759520
2017-06-20 · TA获得超过338个赞
知道小有建树答主
回答量:449
采纳率:66%
帮助的人:208万
展开全部
[^1-9]把正则改成1-9
追问
这样后面就不能输入零了
追答
replace(/^[0]/);这样就可以了,只要求第一位不为0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式