求正则表达式, 第一位大于0的正整数,直接可以在onkeyup事件中 使用的!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求正则表达式, 第一位大于0的正整数,直接可以在onkeyup事件中 使用的!相关的知识,希望对你有一定的参考价值。
以下贴上我之前写的一个通用js函数,供您参考:你可以直接保存为html文件进行测试
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" />
<script>
/**
* 验证是否符合指定的表达式
*
* @param obj 被检查的对象
* @param tit 弹出的提示
* @param reg 表达式
* @param flag 是否置空标志
* @return
*/
function checkValueContentByYch(obj,tit,flag,reg)
var regExp = reg;
var val = obj.value;
if(val!='')
if(regExp.exec(obj.value))
if (flag)
obj.value=parseFloat(obj.value);
return true;
else
if(flag)
var tempval=eval(obj);
tempval.focus();
tempval.select();
alert(tit);
return false;
else
obj.value="";
alert(tit);
return false;
else
return true;
</script>
</head>
<input type="text" id="cou" name="生成的题目数量决定了自动出题的题目数量!"
onkeyup="checkValueContentByYch(this,'只能输入整数!',false,/^[1-9]1\d*$/);"
onfocus="var tempval=eval(this);tempval.focus();tempval.select();"
onblur="checkValueContentByYch(this,'只能输入整数!',true,/^[1-9]1\d*$/);" />
</body>
</html>追问
有更简洁一点的吗? 因为我有10个还要多的这样的文本框, 如果每个都要些三个事件! 感觉 很不好!
追答既然你说不好,那就给你精简下:
function checkValueContentByYch(obj)
var regExp = /^[1-9]\d*$/;
if(!regExp.exec(obj.value))
obj.value='';
在考考你! 这样可以实现了,但 中文我能拖进去!复制也能进去! 能解决吗?
追答看我的第一个回答,需要加onblur事件,这样才够严谨;
这样的话!会禁掉第一位以后的所有的0, 也就是说 ,输入的第二位、第三位,根本无法输入0
追答哦。明白了,这样的话只能写一个function去处理了,
要先拿到number得长度,如果检测发现长度为0,就说明第一位还没有输入,此时这个必须为1-9;否则,可以输入任何数字。
单纯正则做不到的。
以上是关于求正则表达式, 第一位大于0的正整数,直接可以在onkeyup事件中 使用的!的主要内容,如果未能解决你的问题,请参考以下文章
求一时间的正则表达式: 如09:43:09-9:43:10,12:00:01-13:01:34