免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6138 | 回复: 5
打印 上一主题 下一主题

求javascript判断邮件地址是否合法的例子 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-09-03 11:39 |只看该作者 |倒序浏览
这个用的应该很频繁的说,求各种例子参考参考

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
2 [报告]
发表于 2004-09-03 12:41 |只看该作者

求javascript判断邮件地址是否合法的例子

一般不用哦。

也就是正则表达式,满大网的都有

论坛徽章:
0
3 [报告]
发表于 2004-09-03 12:56 |只看该作者

求javascript判断邮件地址是否合法的例子

if ((form.email.value==""||(form.email.value.indexOf ("@"==-1)||(form.email.value.indexOf ("."==-1))
{alert ("\请输入正确的邮件地址!!"
return false;
}
这个方法笨一点.拿去参考一个吧.不过我见意你最后用PHP做过滤.

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
4 [报告]
发表于 2004-09-03 12:59 |只看该作者

求javascript判断邮件地址是否合法的例子

建立JavaScript正则表达式库简化表单验证
 

本文介绍如何创建一个可用于任何Web页面的“正则表达式库”——通过将表单验证代码保存为一个独立的文件,我们可以避免为不同表单重写类似的验证代码,只需在HTML页面中包含这个库文件即可。

   一、HTML元素属性与JavaScript对象属性

   我们知道,HTML允许我们为元素指定自定义属性。如对于表单中的文本输入框元素,我们可以给它指定一个称为validator的属性:

   <  form id="exampleForm" >;

   <  input type="text" name="input1" validator="whatsThisFor?" >;

   ...

 <  /form >;

   该属性将被浏览器的表现引擎忽略,即它对于页面的显示是没有任何影响的。不过,就像所有其它“正式的”属性一样,自定义属性对脚本语言也是可见的,即我们可以在JavaScript代码中引用它并分析它的值。当然,在IE4和N4中引用元素的方法是不同的。下面这个引用自定义属性的示例只能在IE4(及其更高版本)下工作,但其原理也适用于Netscape浏览器:

 if(document.all.exampleForm.input1.validator=="whatsThisFor"

   alert("Hello !";

 else ...

   如果属性没有定义,则试图引用它时将返回空值,在if语句的表达式里它被视为false:

 if(!document.all.exampleForm.input1.validator)

   alert("No validator!";

   下面我们来看看如何在表单验证中应用这种自定义属性。

   二、正则表达式与模式匹配

   许多表单验证任务包含了模式匹配操作。例如我们要验证这样一个图书编号值的合法性:它或者为5个数字字符,或为10个字符——5个数字,一个连字号,再加上4个数字。虽然这些验证任务也可以用一个专用的函数来完成,但用下面这个正则表达式模式与用户输入值比较更为简便:

  /d{5}(-d{4})?/

   如果你以前从来没有用过正则表达式,可以将它理解为一种指定字符模式的语言,其主要操作就是匹配。大多数字符只同它们自己匹配,如正则表达式/abc/只匹配字符串“abc”;但也提供了引用某一组字符(如全部数字)以及指定匹配字符个数的方法。在上例中:d{5}匹配的是任意5个数字,-d{4}匹配的是一个连字号加4个数字,?说明模式中的最后一个元素是可选的,可包含也可不包含。

   三、正则表达式库及其应用

   所谓的正则表达式库就是包含验证常用表单元素的正则表达式的脚本文件,如:

 var PatternsDict = new Object();

 // 匹配图书编号

 PatternsDict.bookPat = /^d{5}(-d{4})?$/;

 // 匹配12:34以及75:83

 PatternsDict.timePat = /^d{2}:d{2}$/;

 // 匹配5:04 或12:34,但不匹配75:83

 PatternsDict.timePat2=/^([1-9]|1[0-2]):[0-5]d$/;

   文件中还要包含下面这个提供验证功能的函数:

 function validateForm(theForm){// 若验证通过则返回true

  var elArr = theForm.elements; // 将表单中的所有元素放入数组

  for(var i = 0; i < elArr.length; i++)

   with(elArr){              // 对于表单中的每一个元素...

    var v = elArr.validator; // 获取其validator属性

    if(!v) continue;            // 如果该属性不存在,忽略当前元素

    var thePat = PatternsDict[v];   // 选择验证用的正则表达式

    var gotIt = thePat.exec(value); // 用正则表达式验证elArr的值

    if(!gotIt){

     alert(name + ": 输入值与正则表达式不匹配(" + v + " —— " + value + ")"; return false;}

   } return true;

  }

   validateForm函数检查每一个表单元素的validator属性,若该属性不存在,脚本忽略此元素并返回循环的开头。否则,从PatternDict中获得当前元素的匹配模式。每一个正则表达式都有对应的RegExp对象,RegExp对象的exec()方法在参数与它所关联的正则表达式不匹配时返回null——此时脚本显示警告对话框。在实际应用场合,为提高效率可以在执行验证之前将这些正则表达式编译。某些输入域可能需要除了简单匹配之外更为复杂的验证。因此,除了模式库之外,还可以为常用的验证任务建立一个函数库。

   设上述验证模式文件为valPatterns.js,将它包含到所有必需用它来验证输入的页面中,然后为每个输入框指定合适的validator属性即可。下面是应用上述valPatterns.js的一个完整示例:

 <  HTML  >;<  HEAD  >;

 <  TITLE  >; formVal.HTM <  /TITLE  >;

 <  SCRIPT src=" ValPatterns.js" >;

 <  /SCRIPT  >;

 <  SCRIPT  >;

 function showForm(theForm){

  alert("表单:" + theForm.id + "已经提交";

 }

 <  /SCRIPT  >;<  /HEAD  >;

 

 <  BODY  >;<  P  >;用正则表达式库验证表单示例.<  /P  >;

 <  FORM id = theForm onSubmit = "return validateForm(theForm)"

   Action = "javascript:showForm(theForm)" >;

 图书编号:

 <  INPUT TYPE=TEXT name=book value="12345-6789" validator=bookPat >;< BR >;

 时 间 值:

 <  INPUT TYPE=TEXT name=time value="12:45" validator=timePat2 >; < BR >;

 单击按钮提交表单:

 <  INPUT TYPE = SUBMIT >;

 <  /FORM >;

 <  /BODY >;< /HTML >;

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
5 [报告]
发表于 2004-09-03 13:01 |只看该作者

求javascript判断邮件地址是否合法的例子

正则表达式被用来匹配一组文字。通常,它有两类用途:
确认
查找和替换


正则表达式对于JavaScritp来说是比较新的东西,它是随着Internet Explorer和Netscape Navigator 4而出现的。大多数正则表达式使用的语言是Perl,在UNIX/Linux 脚本中是很常见的,JavaScript的功能就是从它发展而来。我们先介绍一些正则表达式的基础知识,然后看看怎样在JavaScript中使用它们。你可以从这里下载本文的示例代码。

什么时候利用正则表达式
使用正则表达式可以处理很多不同的任务,包括:

对用户输入的数据如信用卡号或订单号进行确认。
对用户在Web表单中输入的电子邮件地址进行确认。
对某个聊天室的输入进行检查,确保其只含有正当的词语。
为避免SQL Injection攻击而对输入进行检查。
例如,假设要提取一名用户的UK电话号码——一个五位的地区代码和一个六位的电话号码。如果两者之间用空格隔开,应该使用下面的正则表达式:

/^\d{5}\d{6}$/
但是这只告诉你用户的输入与你定义的格式是匹配的,而不能告诉你它是否是一个真正的电话号码。例如,全部由1组成的字符串可以通过确认,但它并不是一个UK电话号码。列表A包含了对号码进行确认的JavaScript代码。

用正则表达式进行查找与替换
正则表达式的另一个主要用途是查找和替换操作。例如,如果正在运行一个聊天组,用户可以输入数据,你想把骂人的话替换为空格。或者你正在检查稍后将进行数据库查询的输入,你要保证它们不会造成SQL Injection攻击。

除了表单,你还可以使用正则表达式对你所有的Web页面进行大的查找替换操作。例如将每个页面页脚的年份从2002年替换为2003年。

对于这种类型的任务,在创建正则表达式时需要十分小心。例如,对于下面这段文字:

“I intend to win this game without putting the football through thewindows as it is the end of the summer and winter is fast approaching.”

如果我们应用如下的正则表达式:

replace(/win/g,”lose”)
会得到这样的结果:

“I intend to lose this game without putting the football through the losedow as it is the end of the summer and loseter is fast approaching.”

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
6 [报告]
发表于 2004-09-03 13:01 |只看该作者

求javascript判断邮件地址是否合法的例子

某些技巧


有许多方法来简化复杂的正则表达式。例如,如果需要对某一项匹配多次,可以简单的用\d{6}来替换\d\d\d\d\d\d。再如可以用\d{1,3}来确认一个百分数。

你也可以再输入中检查特定的字符。例如,如果包装代码由大写P开头,后面跟5个数字,那么可以使用这样的正则表达式:

/^[P]\d{5}$/
用JavaScript实现正则表达式
再列表A中,我们在JavaScript中用正则表达式来确认表单输入。现在再来看另外两个例子。首先,我们来做一俄简单的替换,如同列表B中的一样。

可以用相似的方法来进行匹配。列表C中的脚本同样让用户知道是否有一个匹配存在。

这两种情况的输入和输出变量可能位于一个表单上。而且,测试的结果或许比一个简单弹出框要复杂一些,我把剩下的编码工作留给你以便解决相应的需求。

总结
现在你应该有了一个很好的基础,知道什么时候和怎样在你的代码中使用正则表达式。虽然这篇文章只介绍了在JavaScript中使用正则表达式,但同样可以在Java、Perl、PHP中实现,而且每种情况都相似。

正则表达式是Web开发者一个强有力的附加工具。它们对于确认表单数据如信用卡号、对于从用户输入的SQL查询参数中去除其中不合法的字符、对于更新Web站点每个页面的路径都是很有用的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP