注册 登录
编程论坛 ASP.NET技术论坛

[求助]怎么限制文本框 只能输入数字(可带负号或小数点)?

okkenking 发布于 2007-09-07 08:37, 2459 次点击
<script language=javascript>
function chk(jvc)
{
if (jvc!='' && /^\d*\.?\d*$/.test(jvc.value)==false)
{
alert('请输入合法的数字');
jvc.value = jvc.value.replace(/[^\d\.]/g, "");
}
}
</script>
<input type=text size=20 onpropertychange="chk(this)" >

怎么使上面的代码允许 输入带负号的数字,例如:-3.54
14 回复
#2
bygg2007-09-07 09:54
验证表达式: ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$
#3
okkenking2007-09-10 16:29
验证表达式放到我上面代码的哪里
我放的时候老出错
#4
bygg2007-09-10 16:42
var reg = RegExp('/^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$/');
reg.test(jvc.value);
返回为true或false;
#5
guoxhvip2007-09-10 16:59
正则表达式
#6
okkenking2007-09-10 17:01
function chk(jvc)
{
var reg = RegExp('/^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$/');
if(jvc!=reg.test(jvc.value)==false)
//if (jvc!='' && /^\d*\.?\d*$/.test(jvc.value)==false);
{
alert('请输入数字!');// /^(- ¦\+)?\d+(\.\d+)?$/
jvc.value ="";
return;
}

}

又错了,麻烦帮我看下错在哪
#7
okkenking2007-09-10 17:16
function chk(jvc)
{
if (jvc!='' && /^\d*\.?\d*$/.test(jvc.value)==false)
{
alert('请输入数字!');
jvc.value ="";
return;
}

}
上面的可以达到我的要求,唯独负号 不可输入
#8
okkenking2007-09-10 17:28
function chk(jvc)
{
var reg = RegExp('/^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$/');
if(jvc!='' && reg.test(jvc.value)==false)
{
alert('请输入数字!');
jvc.value ="";
return;
}

}

也不可以
#9
梦灵儿2007-09-10 19:18
恩可以参考一哈
#10
okkenking2007-09-11 16:07
问题还没解决
求救
#11
bygg2007-09-11 16:15
html:javascript:
function checkStr(obj)
{
strValue = obj.value;
if(strValue != "" && strValue != null)
{
for(var i = 0;i < strValue.length ; i++)
{
if(strValue .charAt(0) < "0" || strValue .charAt(0) > "9")
{
window.alert("只能输入数字!");
obj.focus();
return false;
}
}
}
}

Page_Load():
TextBox1.Attributes["onblur"] = "checkStr(this)";
TextBox1.Attributes["onblur"] = "checkStr(this)";
#12
thllilac2007-09-11 17:05
正则表达式
#13
okkenking2007-09-13 08:09
回复:(bygg)html:javascript:function checkStr(ob...

你的代码不能输入"-"号啊

#14
okkenking2007-09-13 08:40
终于搞定了

改了下

^\-?\d*\.?\d*$
#15
bygg2007-09-13 09:32
我写的那个只能输入正整数,呵
1