以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Dot NET,C#,ASP,VB 』  (http://bbs.xml.org.cn/list.asp?boardid=43)
----  请教正则表达式问题?[求助]  (http://bbs.xml.org.cn/dispbbs.asp?boardid=43&rootid=&id=23063)


--  作者:zhineng28
--  发布时间:10/14/2005 3:32:00 PM

--  请教正则表达式问题?[求助]
小妹我是想利用正则表达式来判断一个输入Email地址是否是合法的,但是就无论我输入的值是否是一个合法

的Email,返回的值都是flase,都不知道是哪段代码错了,请大虾们帮帮小妹吧!
问题阐述如下:
1.asp的form表单代码如下,作用是向textfield里面输入一个Email地址,提交给2.asp页面去验证
    <form name="form1" method="post" action="2.asp">
    <p>
    <input name="textfield" type="text" size="30">
    </p>
    <p>
    <input type="submit" name="Submit" value="提交">
    </p>
    </form>


2.asp
<%
Function CheckExp(patrn, strng)
Dim regEx, Matches ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = true ' 设置是否区分字符大小写。
regEx.Global = True ' 设置全局可用性。
Matches = regEx.test(strng)   ' 执行搜索。
CheckExp = Matches

response.write "你输入的是:"&a&"<br>"   '输出a的值,也就是在1.asp里输入textfield的值

response.Write "是否符合要求:"&matches  
'输出matches的值(true/flase),若1.asp里输入textfield的值是一个合法的Email地址的话就输出True,否

则输出false,这里就是问题所在之处,无论我在1.asp中输入textfield的值是不是一个合法的Email地址,输出

结果都是false,不知道为什么会是这样,难道是下面的正则表达式错误了吗?

End Function
%>

<%
Dim a
a=request.Form("textfield")
call CheckExp("\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ,"a")  '这里是利用正则表达式做为参

来调用上面的CheckExp(patrn,strng)来判断a(1.asp中输入的Email地址)
%>


大虾们,为了解决这个问题我在网上搜索了很多相关的文章,判断Email地址的正则表达式也换了不少,还是不

成功,请大虾们帮帮忙,在此先谢了.


--  作者:binaryluo
--  发布时间:10/15/2005 10:41:00 PM

--  
javascript写的如下:
function IsPhoneNumber( s ) //判断s是否是合法的email
{
   if (s.length > 100)
   {
   }

   var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z] +[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))" +
                  "@([a-zA-Z0-9-]+[.])+"+"([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|"+
                  "mil|MIL|org|ORG|edu|EDU|int|INT)$";
   var re = new RegExp(regu);

   if (s.search(re) != -1)
   {
       return true;
   }
   else
   {
       return false;
   }
}


--  作者:binaryluo
--  发布时间:10/15/2005 10:49:00 PM

--  
javascript写的如下:
function IsPhoneNumber( s ) //判断s是否是合法的email
{
   if (s.length > 100)
   {
   }

   var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z] +[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))" +
                  "@([a-zA-Z0-9-]+[.])+"+"([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|"+
                  "mil|MIL|org|ORG|edu|EDU|int|INT)$";
   var re = new RegExp(regu);

   if (s.search(re) != -1)
   {
       return true;
   }
   else
   {
       return false;
   }
}


--  作者:binaryluo
--  发布时间:10/15/2005 10:50:00 PM

--  
javascript写的如下:
function IsPhoneNumber( s ) //判断s是否是合法的email
{
   if (s.length > 100)
   {
   }

   var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z] +[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))" +
                  "@([a-zA-Z0-9-]+[.])+"+"([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|"+
                  "mil|MIL|org|ORG|edu|EDU|int|INT)$";
   var re = new RegExp(regu);

   if (s.search(re) != -1)
   {
       return true;
   }
   else
   {
       return false;
   }
}


--  作者:zhineng28
--  发布时间:10/17/2005 9:02:00 AM

--  
呵呵,先谢谢上面的这位大哥,不过JS我也试过了,是可以的,但不是很适合。我现在想开发一个类似于论坛的东西,很多内容都要用到我在一楼写的程序,而且要把正则表达式也作为一个传递的参数来写,
你能说说我写的程序有什么错误吗?
--  作者:binaryluo
--  发布时间:10/18/2005 11:52:00 AM

--  
asp我不熟,只用过.net。
上面的那个函数是可以用的,他的参数就是你要验证的字符串,你只要把你的asp里的相应的验证函数替换掉就可以了。
--  作者:binaryluo
--  发布时间:10/18/2005 11:57:00 AM

--  
你也可以参考着上面的函数改下你自己的vbscript。
--  作者:zhineng28
--  发布时间:10/18/2005 12:57:00 PM

--  
呵呵,我试过了,可以的啊,不过这段代码是在客户端运行的吧!
--  作者:binaryluo
--  发布时间:10/19/2005 11:30:00 AM

--  
是的,js是在浏览器上运行的。
--  作者:zhineng28
--  发布时间:10/19/2005 12:35:00 PM

--  
那你应该对怎样运用js很熟识吧!到外面看看我发的一个"如何在一个<a>标签中调用一个js
"的帖好吗?看能不能帮我解决问题,先谢谢了.
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms