如何用onkeyup验证input框只能输入开头不为零的正整数
这个onkeyup="this.value=this.value.replace(/[^0-9]/g,'')"不能验证以零开头,其他都可以验证...
这个onkeyup="this.value=this.value.replace(/[^0-9]/g,'')" 不能验证以零开头,其他都可以验证
展开
展开全部
首先纠正点东西
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>
<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>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
[^1-9]把正则改成1-9
追问
这样后面就不能输入零了
追答
replace(/^[0]/);这样就可以了,只要求第一位不为0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询