首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 【帮忙】求个可以代替IsNumeric的正则表达式!在线等结贴! [已结贴,结贴人:zhybxyz]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 19:34:14 楼主
    如题!

    主要针对的是程序数字参数接收校验(例如:id=158),所以涉及到SQL语句的安全性。

    select * from table where id=" & idcheck(request("id"))

    网上找了很多了,都不符合要求!

    高手来帮忙写个!在线等!!!

    注意:很多都忽略了“+,-”号了,+1这样也是不可以的!另外不要带“0”!
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 20:29:121楼 得分:0
    在线等!~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 20:33:112楼 得分:0
    正则高手在哪了?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 20:41:383楼 得分:50
    [1-9]这样的正则很难??
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 20:44:354楼 得分:0
    只是[1-9]不行啊,-9这样也可以匹配。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 20:44:535楼 得分:0
    RegExp.Pattern="[1-9]"
    这样一个正则很难吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 20:46:256楼 得分:0
    -9可以匹配???
    晕!!你知道那指1-9指的是什么吗?
    你以为指的是-9啊?那是指1,2,3,4,5,6,7,8,9这9个数字!!!组成的正整数!并不是负数!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 20:46:547楼 得分:0
    实在无语!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 20:47:178楼 得分:0
    不是要提取,是校验。输入错误就丢弃不要了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 20:48:409楼 得分:0
    只是[1-9],这样的数据怎么办?-9dfsg4534534
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 20:50:3910楼 得分:0
    看看这个结果就知道了……………………
    Function IsNumber(RequestName)
    IsNumber = False
    If IsNull(RequestName) Or RequestName = "" Then Exit Function
    Dim RegEx
    Set RegEx = New RegExp
    RegEx.Pattern = "[1-9]"
    RegEx.IgnoreCase = True
    RegEx.Global = True
    IsNumber = RegEx.Test(RequestName)
    Set RegEx = Nothing
    End Function


    if isnumber("34fsae3") then
    response.write "ok"
    else
    response.write "no"
    end if
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 20:55:5811楼 得分:0
    VBScript code
    function Getnum(str) '取得img 标签内容 dim tmp Set objRegExp = New Regexp objRegExp.IgnoreCase = True '忽略大小写 objRegExp.Global = True '全文搜索 !关键! objRegExp.Pattern ="^[1-9]" ' if objRegExp.test(str) then Getnum=str else Getnum="参数错误" end if end function sty=-9 response.Write Getnum(sty)

    自己去验证吧,我多说无益
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 20:58:3312楼 得分:0
    看来还是你没有明白了……

    试试

    1.0
    2.0
    3.0
    4.0
    5.0
    ……

    看看这个是不是能通过验证???
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:00:3013楼 得分:0
    1.2
    2.2
    3.2

    看看行不行……
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:02:5814楼 得分:0
    上面指考虑了正负数的问题,实际上应该还得考虑字母和符号问题
    稍微改下

    VBScript code
    <%function Getnum(str) dim tmp Set objRegExp = New Regexp objRegExp.IgnoreCase = True '忽略大小写 objRegExp.Global = True '全文搜索 !关键! objRegExp.Pattern ="^[0-9]*[1-9][0-9]*$" ' if objRegExp.test(str) then Getnum=str else Getnum="参数错误" end if end function sty="34fsae3" response.Write Getnum(sty) %>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:04:3915楼 得分:0
    ^[0-9]*[1-9][0-9]*$

    还是有点问题,01 02 03 04 05 06 07 08 这类还通过校验的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:05:0916楼 得分:0
    很难吗?
    ^[0-9]*[1-9][0-9]*$这个正则是匹配正整数最基本得正则!几乎每个教程里基本都会有得例子
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:06:0117楼 得分:0
    因为ID一般是自动编号类的自然数,1,2,3,4,5,6……

    所以01 02 03 04这一类也不要通过验证。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:06:0418楼 得分:0
    这个通过验证,但你看下实际输出得是什么?
    还是09没啊???不是了吧?而是9了吧!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:07:0919楼 得分:0
    你自己输出看下结果好不好??
    知道为什么验证通过吗?
    在传输过程中0开头得被淘汰了!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:08:1120楼 得分:0
    正则不太熟练,可否完全是自然数?不要01 02 03 04这样的?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:08:2821楼 得分:0
    再者你真想排除0,这样objRegExp.Pattern  ="^[1-9]*[1-9][1-9]*$"不就没0了吗?
    为什么非要写完整?不动恼呢?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:10:0722楼 得分:0
    晕了,从你说的[1-9],到现在这个表达式^[1-9]*[1-9][1-9]*$,有那么简单吗?我正则不是很熟练的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:10:0923楼 得分:0
    你这样不懂脑子,你学东西永远无法进步,永远就是这个样子了!被淘汰是正常的,怨不得社会,怨不得上司不给机会!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:11:5524楼 得分:0
    在教程里^[0-9]*[1-9][0-9]*$这个有吧?
    你随便搜索一个教程里都有^[0-9]*[1-9][0-9]*$  //匹配正整数这一个例子说明
    那么你不要0的话,吧0去掉不就是了吗?难道你连这一点的头脑都没有?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:12:2425楼 得分:0
    有点迷糊,是你没有看清问题吧,来了就说简单,结果写这么多,改了N次…………

    你这么粗心的解决问题上司就能喜欢你了?我是你上司要炒你的鱿鱼了,呵呵。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:13:4426楼 得分:0
    说你,还在那狡辩!你要继续这样!你被淘汰是正常的!!

    如果我的下属是这样的,第二天我就让他滚蛋了!这样不懂脑子的下属培养没价值!!浪费公司资源又耽误公司工程进度
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:15:0627楼 得分:0
    本来就简单!!如果不考虑具体情况1-9就完全可以
    不信你放一个JS里试试
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:16:3128楼 得分:0
    不跟你废话了,估计你也是白天工作干不好,让上司训斥了一顿,跑这来撒气来了……

    不管怎么说,还是解决了问题,谢了,结贴。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:17:4629楼 得分:0
    我什么时候说过要放JS里了??我有问JS吗?

    呵呵,心情不好可以理解,别乱到处放气……影响别人就不好了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:18:1930楼 得分:0
    JScript code
    str="09"; var upass=/^[1-9]$/; if (!upass.test(str)) { alert("只能1-9数字组成!"); }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:19:2231楼 得分:0
    你也没说是VBS还是JS的,我只是凭想象去说正则的

    如果指按正则不说环境的话,1-9就是正确的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:20:2232楼 得分:0
    我没有上司,没有必要生气
    我都已经说了,如果我下属一个程序员如果像你这样
    我第二天肯定让他滚蛋!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:21:1633楼 得分:0
    不自己看自己问的是什么
    你问的只是代替IsNumeric的正则表达式
    既然是正则,那么我说的1-9就是没错的!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:21:1734楼 得分:0
    请那位高手指点一下。
    WebBrowser不能够打印整个纸张页面
    请教,有那位用过WebBrowser在web程序中打印功能的。
    我现在用WebBrowser打印,WebBrowser不能够打印整个纸张页面。
    比如:我设置发票的格式为19.10*9.31cm,打印的时候,纸张的低部有2cm不能够打印。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 21:23:2435楼 得分:0
    给脸了是不?没完了?问题解决了,也说了谢过,分也给了。该滚蛋滚蛋!MD墨迹个P啊!操