如何判断从表单提交的数据是字符串还是数字?

gyyjnu 2000-03-28 04:54:00
我在用ASP和SQL Server6.5开发一个成绩管理系统,我想限制输入的成绩(Score)必须是在0-100之间的数,否则出错。由于是用表单提交,用Request.Form获得的数据是字符串型,因此我用了一个函数cdbl(),先把它转换成双精度字类型,然后检验它是否在0-100之间,但有一个问题就是,若输入的是字符串(如abcd)时,用cdbl()函数就会出错,请问我该如何判断输入的是字符串还是数字?或者把数字限制在0-100之间有更好的方法?
另外,如何限制数字的长度(如输入身份证,限制其长度必须是15位等)
...全文
540 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
guzhigang 2000-03-29
  • 打赏
  • 举报
回复
我想限制长度,HTML就可以半岛,<INPUT NAME=LIC WIDTH=18>
subzero 2000-03-29
  • 打赏
  • 举报
回复
先用isnumeric函数判断
然后再转换
建议判断是否为数字最好在客户端进行
这样节省时间和带宽
dragoncircle 2000-03-29
  • 打赏
  • 举报
回复
ring说的有理,限制长度可以用TRIM截去头尾空格后用LEN函数判断。
farmer 2000-03-29
  • 打赏
  • 举报
回复
这也是一位网友教我的,借花献佛!
在客户端按发送按钮时先检查是否是“数字”类型,然后决定是否需要调用表单处理程序!
<input type="button" value="提交申请" name="B1"
onclick="test (document.form.danjia.value,document.form.sl.value,document.form.jine.value,document.form.sjjg.value) "> <input type="reset" value="取消重写" name="B2">
====================
<script language="vbscript">
function test(dj,jine,sl,sjjg)
if not isnumeric(dj) or not isnumeric(jine) or not isnumeric(sl) or not isnumeric(sjjg) then
msgbox("请在单价、数量、金额、实际价格处填写数字")
else
document.form.submit()
end if
end function
</script>
ring 2000-03-29
  • 打赏
  • 举报
回复
错了,是maxlength
<input name=lic maxlength=18>
ring 2000-03-28
  • 打赏
  • 举报
回复
我觉得也是,但有时候为了安全起见,比如防止有些人用自己修改了的页面发送Form
所以我觉得如果不嫌麻烦的话,最安全又体面的方法就是在客户端和服务器端都判断
在客户端用javascript比较麻烦 必须用到 IndexOf() 方法来判断是否有非法字符
sunsetyang 2000-03-28
  • 打赏
  • 举报
回复
这个洞动要让它提交到服务器短判断的话也未免太.......
用个java script或vb script不就可以了吗?
ring 2000-03-28
  • 打赏
  • 举报
回复
表单提交的数据都是字符串,即使是数字也是以字符串的形式传过来
但是vb包容性很强,比如说MsgBox函数,即使是数字也能正常显示
你可以使用 IsNumeric 函数先判断该变量(容许字符串),如果返回True就可以再用Ddbl函数转化

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧