简单封装:检测邮箱是否合法

  上一个检测邮箱是否合法的例子只能检测到 输入的邮箱中含有“@”和“.”即为合法邮箱,并没有检测到“@”和“.”应出现的位置,下面写个更为完善的。哦,感谢“前端民工”的指正,借用他的话“人生的路就是这样,一程接着一程,短的是旅途,长的是人生”,而码代码的路也是这样,一行接着一行,短的可能是bug,长的也可能是bug。最好的代码永远在下一次优化。 :)

 

function isEmail(){
    var str = "jhhhhhh@gmail.com";
    var reg = /^[0-9a-zA-Z_]{5,12}@(163|126|qq|yahoo|gmail|sina)\.(com|com\.cn|cn|la)$/;
  // 或者 reg = /^\w+(-*\w*)*@[a-zA-Z0-9]+(\.[a-zA-Z]+){1,3}$/ 
if(str.search(reg) < 0){ console.log('邮箱错误!'); }else{ console.log('邮箱正确!'); } } isEmail();

 

补充:

/^$/ 这个是个通用的格式;
^ 匹配输入字符串的开始位置;$匹配输入字符串的结束位置;

* 匹配前面的子表达式零次或多次;
+ 匹配前面的子表达式一次或多次;
?匹配前面的子表达式零次或一次。

 

欢迎指正!

 

更新于2016.10.9


 

 

简单封装一个对象案例

String.prototype.isEmail = function(){

  email = this;
  if (email.indexOf("@")!=-1&&email.indexOf(".")!=-1){
    if(email.indexOf("@")<email.lastIndexOf("@")){
      alert("邮箱不合法");
    }else{
      alert("邮箱合法");
    }
  }
}
var email = "jhhhhhh@gmail.com";
email.isEmail();

补充:

  indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。

  lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。如果要检索的字符串值没有出现,则该方法返回 -1。

posted @ 2016-10-08 11:19  Jaye8584  阅读(753)  评论(2编辑  收藏  举报