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

求助:请问如何判断文本框输入的内容为数字,如不是数字则无法写入?

xwhaohuai 发布于 2007-10-10 16:50, 1261 次点击
我是刚学ASP的,如题,请问如何判断文本框输入的内容为数字,如不是数字则无法写入,数据库字段需要设置为什么类型呢?
6 回复
#2
yms1232007-10-10 17:29
VBS
Function IsNum(Txt)
On Error Resume Next
IF VarType(CInt(Txt))<>2 Then
IsNum=False
End IF
IsNum=True
End Function
javascript
function IsNum(Txt)
{
var tst;
try
{
var tst=eval(Txt+"1");
return true;
}
catch(e)
{
return false;
}
}
使用方法
VBS
Dim Tst
Tst="1abc"
IF Not IsNum(Tst) Then
Response.Write "变量非数字"
End IF
Javascript
var Tst="1abc";
if(!IsNum(Tst))
{
alert('变量非数字');
}
#3
tianyu1232007-10-10 17:45

1.可以运用正则表达式:

例如:

<script language=javascript>
function check(str)
{
var reg=/^\d+$/;
if(!reg.test(str))
{
alert("你输入的不是数字!");
}
else
{
alert("你输入的是数字!");
}
}
</script>
<form name=form1>
<input type=text name=t1>
<input type=submit name=s1 value="检测" onclick="check(form1.t1.value);">
</form>

2.也可以直接运用ASP中的函数 isnumeric()

例如:

<%
a=123
b="abc"
if isnumeric(a) then
response.write"a是数字!&nbsp;"
else
response.write"a不是数字!&nbsp;"
end if
if isnumeric(b) then
response.write"b是数字!"
else
response.write"b不是数字!"
end if
%>
#4
hmhz2007-10-10 18:00
用的着那么麻烦吗?

<input type="text" name="qq" maxlength="9" onpropertychange="if(/\D/g.test(value))value=value.replace(/\D/g,'')" ondragenter="return false" style="ime-mode:disabled" />

[此贴子已经被作者于2007-10-10 18:01:18编辑过]

#5
xwhaohuai2007-10-11 08:54
谢谢各位的帮忙,结果都可以实现,三楼的就是如果输入的不是数字就不可以在文本框内编辑.onpropertychange="if(/\D/g.test(value))value=value.replace(/\D/g,'')"能请问下这句语句是什么意思吗/?谢谢
#6
永夜的极光2007-10-11 10:18

斑竹这个代码真强,,先收藏起来

#7
yms1232007-10-11 22:56
if(/\D/g.test(value))value=value.replace(/\D/g,'')"
正则表达式,直接判断数据类型的一种表达式。
1