IsNumeric() 不适用于 Request.QueryString

Posted

技术标签:

【中文标题】IsNumeric() 不适用于 Request.QueryString【英文标题】:IsNumeric() not working with Request.QueryString 【发布时间】:2013-05-02 15:04:31 【问题描述】:

我在尝试让 IsNumeric 与 Request.QueryString 一起正常工作时遇到问题。

服务器是Windows 2008 R2 / IIS7.5

我的代码再简单不过了:

    <%@ LANGUAGE=VBScript %>
    <% Response.Write "IsNumeric: " & IsNumeric(Request.QueryString("")) %>

我的网址: http://localhost.com/default2.asp?44hjh

输出: IsNumeric: 真

如果我把我的代码改成这样,那么我会得到想要的结果:

    <%@ LANGUAGE=VBScript %>
    <% Response.Write "IsNumeric: " & IsNumeric(Request.QueryString("test")) %>

我的网址: http://localhost.com/default2.asp?test=44hjh

输出: IsNumeric: 假

当我没有指定特定的查询字符串元素时,为什么 IsNumeric 不起作用?更重要的是,我该如何解决?

【问题讨论】:

【参考方案1】:

Request.QueryString("") 不存在,因此返回 NULL -- 没有空白的参数。 IsNumericNULL 值将返回 True。

除了使用Request.QueryString(""),您可以像在第二个示例中那样提供参数,或者仅使用Request.QueryString,假设没有其他参数传递到您的页面:

<% Response.Write "IsNumeric: " & IsNumeric(Request.QueryString) %>

【讨论】:

太棒了,您的示例完美运行!非常感谢,谢谢:) @Rich -- np,很高兴我能帮上忙!【参考方案2】:

那是因为 isnumeric 的 null 值返回一个整数类型。这就是为什么您在第一种情况下得到 TRUE 的原因。而您在第二种情况下使用 isnumeric 检查字符串类型。

【讨论】:

有趣...感谢您的回复!关于如何检查它是否真的是数字的任何建议?

以上是关于IsNumeric() 不适用于 Request.QueryString的主要内容,如果未能解决你的问题,请参考以下文章

isNumeric 未测试所有表单字段

request.setAttribute() 设置的值不适用于 request.getParameter() [重复]

$request 不适用于 laravel get 方法

适用于 urllib.request 但不适用于请求

Python Django - 模板标签中的 % request.user.is_authenticated % 不适用于 JS

https不适用于apache