之前去面试实习生,面试官问了个编程问题,让用js写一段,判断输入是否的文本是邮件格式,当时脑子卡壳了,硬是想通过对字符串字符的循环扫描来实现这个功能,结果做了半天还出错了,回来路上后冷静想了下,发现可以用正则表达很简单的实现。
个人原创,版权所有,转载请注明出处,并保留原文链接:
http://www.embbnux.com/2014/07/04/regular_expression_for-email_js_php/
首先讲讲正则表达式:
个人理解,正则表达式主要用来实现对字符串的操作,可以用来判断字符串的格式,实现字符串分割等,在很多高级语言上都是支持的,比如php ,js ,python. 主要实现方法就是匹配,通过设定正则表达式的结构和已知字符串进行比较来实现操作。
实现js实现email格式检验:
function IsEmail(email){ var exmail = /^(\w){1,20}@(\w){1,10}((\.\w{1,8}){1,4})$/; return exmail.test(email); }
说说正则表达式的意思“/^(\w){1,20}@(\w){1,10}((\.\w{1,8}){1,4})$/”
正则表达式使用//来作为开头和结尾,^符合表示从头开始匹配,最后的$表示匹配到字符串的最后。
(\w)表示英文字符或者数字,{1,20}表示前面的字符或者数字至少一个至多20个,然后是匹配@,再然后还是配置字符,然后是(\.\w{1,8})表示匹配“.”加字符或者数字,{1,4}则表示点加字母或者数字的个数。要限制输入的字符的长度,以免垃圾程序的攻击。
使用php实现email格式的检验
正则表达式是一样的,只是使用的函数不一样:
function IsEmail($email){ $exmail = /^(\w){1,20}@(\w){1,10}((\.\w{1,8}){1,4})$/; $result = 0; if(preg_match($exmail, $email ) ){ $result = 1; } else{ $result=0 ; } return $result; }
学习了,感谢分享