注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

米欧光影工作室

No matter what you want to express……

 
 
 

日志

 
 
关于我

{ note: ‘不会编程的设计狮不是好科研狗’ }

网易考拉推荐

正则表达式——邮件发送前检验  

2013-10-13 17:33:05|  分类: js |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |



Javascript API高薪求助帮写,一个简单的Gmail发送前提示信息

哪位大神可以帮写一个Javascript api, 有偿 不白写,具体要求也很简单:
一个Gmail发送邮件前的收件人域名检查及提示。

例如我们公司的gmail域名是 @abc.com  公司中的每一个人用公司gmail账号发邮件之前,检查一下收件人(To和CC)地址的域名是不是@abc.com, 其实就是检查是不是给本公司内部邮箱发邮件。

如果To和CC所有的地址中,有不是 @abc.com的,就弹出一个确认窗口,询问是否确认发送,yes就发送,no就不发送。大概是用JS写还是什么的,我也不了解Chrome Extension...谢谢大神帮忙!~~~


解决方案
正在思考。
需要正则表达式,需要js。这两个都不熟。。。

1 先简化为只有to,成功后再考虑合并to和cc的内容。
已经显示2个按钮。
已经基本达到提问者的要求。


差距:
不知道这段代码放到哪里?
细节:如果输入空白的;符号,怎么处理?(如下图,在cc的末尾有一个;,于是在提醒中有一个“ 邮箱1 格式错误”的空白提示。)
正则表达式——邮件发送前检验 - 米欧studio - 米欧光影工作室
 
 


测试环境如下:单页面


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<head>
<title>to and cc</title>
<style>
body{ color: #222222;
font-family: Tahoma,"宋体",Arial;
font-size: 12px;
line-height: 180%;}
li{list-style:none; margin:10px; auto;}

#mailbox{width:800px; margin:20px auto; padding:20px; background:#eee; }

label{ float: left; color:#000; width: 50px; height:30px; line-height:35px;}

input{
height: 20px;
line-height: 14px;
margin: 0 0 5px;
padding: 8px 5px 7px;
}
input, textarea{border: 1px solid #74C8E5; width:700px; }
textarea{ min-height:200px;}

.send{ display:block; margin-left:650px; width:100px; height:40px; background:#1BA1E2; color:#fff; border:none; font-weight:bold;}
.send:hover{background:#1581B7;}
h1.middle{ width:150px; margin:0 auto;}
</style>

</head>

<body>

<ul id="mailbox">



<form id=newmail name=newmail action="a.php" method="post" enctype="text/plain">
<h1 class=middle>写新邮件</h1>
<li>
<label>TO:</label><input type="text" name="email" id="email" value=" a@abc.com; b@163.com; cs@sina.com" />
</li>

<li>
<label>CC:</label><input type="text" name="cc" id="cc" value="d@abc.com; .@g.cn; " />
</li>

<li>
<label>标题:</label><input type="text" name="title" id="title" />
</li>


<li>
<label>内容:</label><textarea type="text" name="content" id="content"> </textarea>
</li>

<li>
<input class="send" type="button" name="send" id="send" value="发送" onclick="javascript:beforesend()" />
</li>


<a href="http://poster469.blog.163.com/blog/static/1319113420137973350285/" target="_blank" />metro色彩</a>

</form>


</ul>






<script>
function trim(str){ //删除左右两端的空格
   return str.replace(/(^\s*)|(\s*$)/g, "");
   }



function beforesend()
{
var email1 = document.getElementById("email").value;
email1 = trim(email1); //alert("1 " + email1);

var email2 = document.getElementById("cc").value;
email2 = trim(email2); //alert("2 " + email2);

var email="";

email = email1 + ';' + email2;
//email = email1 && ";" && email2; //to 和 cc 都考虑进去了。
//alert("3 " + email);


var str=""; //记录是否是邮箱有错误;
var notIn=""; //记录是否是邮箱不是公司邮箱

var ismail=/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
var isourmail=/^([\w-+=_]+(?:\.[\w-+=_]+)*)@(
?=abc.com$)((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/;


if(email!="" && email.indexOf(";")>0)
{
var arremail=email.split(";");
var n=arremail.length;

//if((trim(arremail[n]))=="") { n=n-1; }

for(var i=0; i<n;i++)
{
if(arremail[i].replace(/\s+/g,"").search(ismail)==-1)
{
str=str+"邮箱1 "+arremail[i]+" 格式错误!\n";
}

if(arremail[i].replace(/\s+/g,"").search(isourmail)==-1)
{
notIn=notIn+"邮箱2 "+arremail[i]+" 不是公司邮箱!\n";
}
}
}
else
{
if(temp.replace(/\s+/g,"").search(ismail)==-1)
{
str="邮箱3 "+temp+" 2格式错误!\n";
}

if(arremail[i].replace(/\s+/g,"").search(isourmail)==-1)
{
notIn="邮箱4 "+arremail[i]+" 2不是公司邮箱!\n";
}
}

str2=str + "\n\n" + notIn;

//if(str2!=""){alert(str2);}else{alert("邮箱格式正确!");}

//使用confirm函数重新编写了这一个if语句,可以判断,然后决定是否提交后台。

if(str!=""){
alert("邮箱有错误!\n" + str);//邮箱有错误叫停,格式正确再继续
}
else //邮箱没问题,就验证是否是公司内部的
{
//alert("邮箱格式正确!");
if(notIn!=""){ //出现非公司邮箱就提醒
if(confirm(notIn + "\n\n含有非公司邮箱,确实要发送吗?\n")){
//同意发送,就发送,否则,暂停
document.getElementById("newmail").submit();
}
}
else{ //没有出现非公司邮箱就发送
document.getElementById("newmail").submit();
}

}





}

</script>
</body>
</html>





后台文件a.php :


<?php
$str2="fine,";
echo "我是php后台!<br /><br />";
echo $str2."<br />恭喜你!!";
?>



保证
1 邮箱格式正确;2 是公司邮箱;

逻辑:
如果邮箱格式错误,就提示修改;
正确,就继续判断是否为公司邮箱;
含有非公司邮箱,提醒是否提交?是就提交,否,就什么不做;
全是公司邮箱,就直接提交。


有待改进:
如果邮箱结尾是;会提醒说错误邮箱。需代码自动去除。





take home msgs:
function checkEmail (address) {
   return /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/.test(address);
}


refer
3.[推荐]正则表达式验证库 visa卡、master卡、SSN验证等 http://regexlib.com
  评论这张
 
阅读(170)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017