js验证、手机、固话、邮箱、身份证、网址、日期等

Verification.js文件

/*
* 手机号码格式
* 只允许以13、15、18开头的号码
* 如:13012345678、15929224344、18201234676
*/
var regMobile=/^[|||][-]\d{,}$/;
/*
* 固定电话号码格式
* 因为固定电话格式比较复杂,情况比较多,主要验证了以下类型
* 如:010-12345678、0912-1234567、(010)-12345678、(0912)1234567、(010)12345678、(0912)-1234567、01012345678、09121234567
*/
var regPhone=/^(^\d{}-?\d{}$)|(^\d{}-?\d{}$)|(^\d2-?\d{}$)|(^\d3-?\d{}$)$/;
/*
* Email邮箱
* 如:zhangsan@163.com、li-si@236.net、wan_gwu999@SEED.NET.TW
*/
var regEmail=/^([a-zA-Z0-]+[_|\-|\.]?)*[a-zA-Z0-]+@([a-zA-Z0-]+[_|\-|\.]?)*[a-zA-Z0-]+(\.[a-zA-Z]{,})+$/;
/*
* 身份证15位编码规则:dddddd yymmdd xx p
* dddddd:6位地区编码
* yymmdd: 出生年(两位年)月日,如:910215
* xx: 顺序编码,系统产生,无法确定
* p: 性别,奇数为男,偶数为女
*
* 身份证18位编码规则:dddddd yyyymmdd xxx y
* dddddd:6位地区编码
* yyyymmdd: 出生年(四位年)月日,如:19910215
* xxx:顺序编码,系统产生,无法确定,奇数为男,偶数为女
* y: 校验码,该位数值可通过前17位计算获得
*
* 前17位号码加权因子为 Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ]
* 验证位 Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]
* 如果验证码恰好是10,为了保证身份证是十八位,那么第十八位将用X来代替
* 校验位计算公式:Y_P = mod( ∑(Ai×Wi),11 )
* i为身份证号码1...17 位; Y_P为校验码Y所在校验码数组位置
*/
function validateIdCard(idCard){
  //15位和18位身份证号码的正则表达式
  var regIdCard=/^(^[-]\d{}((\d)|([-]))(([||]\d)|[-])\d{}$)|(^[-]\d{}[-]\d{}((\d)|([-]))(([||]\d)|[-])((\d{})|\d{}[Xx])$)$/;
  //如果通过该验证,说明身份证格式正确,但准确性还需计算
  if(regIdCard.test(idCard)){
    if(idCard.length==){
      var idCardWi=new Array( , , , , , , , , , , , , , , , , ); //将前17位加权因子保存在数组里
      var idCardY=new Array( , , , , , , , , , , ); //这是除以11后,可能产生的11位余数、验证码,也保存成数组
      var idCardWiSum=; //用来保存前17位各自乖以加权因子后的总和
      for(var i=;i<;i++){
        idCardWiSum+=idCard.substring(i,i+)*idCardWi[i];
      }
      var idCardMod=idCardWiSum%;//计算出校验码所在数组的位置
      var idCardLast=idCard.substring();//得到最后一位身份证号码
      //如果等于2,则说明校验码是10,身份证号码最后一位应该是X
      if(idCardMod==){
        if(idCardLast=="X"||idCardLast=="x"){
          return true;
        }else{
          alert("身份证号码错误!");
        }
      }else{
      //用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
        if(idCardLast==idCardY[idCardMod]){
          return true;
        }else{
          alert("身份证号码错误!");
        }
      }
    }
  }else{
    alert("身份证格式不正确!");
  }
}
/*
* 只能为正整数
*/
var regNum=/^\d+$/;
/*
* 邮政编码
*/
var regPostCode=/^\d{}$/;
/*
* 用户名
* 只能是字母数字下划线,并且以字母开头(5-16位)
*/
var regUserName=/^[a-zA-Z]\w{,}$/;
/*
* IP地址
* 如:192.168.1.102
*/
var regIP=/^((([-]\d?)|(\d{})|([-]\d)|([-]))\.){}(([-]\d?)|(\d{})|([-]\d)|([-]))$/;
/*
* 只能是中文汉字
*/
var regChineseChar=/^[\u4e00-\u9fa5]+$/;
/*
* 网址
* 只允许http、https、ftp这三种
* 如:http://www.baidu.com
*/
var regWeb=/^(([hH][tT]{}[pP][sS]?)|([fF][tT][pP]))\:\/\/[wW]{}\.[\w-]+\.\w{,}(\/.*)?$/;
/*
* 日期格式验证
* 因为日期格式比较多,主要验证了以下类型
* 2012-05-14、2012/05/6、2012.5.14、20120528
*/
var regDate=/^[-]\d{}([-|\/|\.])?((\d)|([-])|([-]))\(([||]\d)|([-])|[-])$/;
/*
* 调用以上正则表达式的方法
* 以验证电话号码格式为例
*/
function onCheck(tel){
  if(regMobile.test(tel)){
    return true;
  }else{
    alert("联系方式格式不正确!");
  }
} Date.prototype.Format = function(formatStr)
{
  var str = formatStr;
  var Week = ['日','一','二','三','四','五','六'];   str=str.replace(/yyyy|YYYY/,this.getFullYear());
  str=str.replace(/yy|YY/,(this.getYear() % )>?(this.getYear() % ).toString():'' + (this.getYear() % ));   str=str.replace(/MM/,this.getMonth()>?this.getMonth().toString():'' + this.getMonth());
  str=str.replace(/M/g,this.getMonth());   str=str.replace(/w|W/g,Week[this.getDay()]);   str=str.replace(/dd|DD/,this.getDate()>?this.getDate().toString():'' + this.getDate());
  str=str.replace(/d|D/g,this.getDate());   str=str.replace(/hh|HH/,this.getHours()>?this.getHours().toString():'' + this.getHours());
  str=str.replace(/h|H/g,this.getHours());
  str=str.replace(/mm/,this.getMinutes()>?this.getMinutes().toString():'' + this.getMinutes());
  str=str.replace(/m/g,this.getMinutes());   str=str.replace(/ss|SS/,this.getSeconds()>?this.getSeconds().toString():'' + this.getSeconds());
  str=str.replace(/s|S/g,this.getSeconds());   return str;
} function dateFormat(date, format){   date = new Date();
  var map = {
    "YY": date.getYear(),
    "M": date.getMonth() + , //月份
    "d": date.getDate(), //日
    "h": date.getHours(), //小时
    "m": date.getMinutes(), //分
    "s": date.getSeconds(), //秒
    "q": Math.floor((date.getMonth() + ) / ), //季度
    "S": date.getMilliseconds() //毫秒
  };   format = format.replace(/([YMdhmsqS])+/g, function(all, t){
    var v = map[t];
    if (v !== undefined) {
      if (all.length > ) {
        v = "" + v;
        v = v.substr(v.length - );
      }
      return v;
    }
    else if (t === "Y") {
      return (date.getFullYear() + "").substr( - all.length);
    }
    return all;
  });
  return format; } html文件验证 <script src="jquery.min.js"></script> <script src="Verification.js"></script> <script>   $(function(){     $('#number').blur(function(){       number = $('#number).val();
      if ( number == '') {         return false;
      } else {         checkIdCard = validataIdCard(number);
      }
    });   });   $('#phone_number').blur(function(){     phone_number = $('#phone_number').val();
    if(phone_number == ''){       return false;
    } else {       checkPhone = onCheck(phone_number);
    }   
  });
</script>

javascript、正则的验证的更多相关文章

  1. JavaScript 正则表单验证(用户名、密码、确认密码、手机号、座机号、身份证号)

    1.关于JavaScript表单验证,如果使用双向绑定的前端js框架,会更容易的多.但是博主还是建议大家不要脱离源生js本身.因为源生js才是王道. 注意: a.代码中的错误提示可能会没有,在代码中找 ...

  2. Javascript 用来验证电话号码的正则

    Javascript 用来验证电话号码的正则 在学习 Javascript 时学习到的. function telephoneCheck(str) { // return /^(1\s?)?(\d{3 ...

  3. JavaScript表单验证和正则表达式

    JavaScript表单验证 分为四类: 1.非空验证 常用于用户名等 2.相等验证 常用于验证两次输入的密码 3.范围验证 常用于年龄等 4.正则验证 用于手机号,邮箱号等 以下是实例: <! ...

  4. JavaScript正则式入门

    正则式 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表通常被用来检索.替换那些符合某个模式(规 ...

  5. JavaScript正则中\1\2的作用

    一.示例 1. 验证6个相同的数字 var reg = new RegExp(/^(\d)\1{5}/g); var a = '333333'; if(reg.test(a)) { alert('ri ...

  6. JavaScript 正则表达收集整理

    JavaScript 正则表达收集整理 //可为空 /^\s*$/ //密码验证,必须且只含有数字和字母,可以拥有英文符号,6-17位 /(?=.{,})(?=.*\d)(?=.*[a-z])[\x2 ...

  7. JavaScript正则常用知识总结

    一.JavaScript正则相关方法 str.match(regexp)与regexp.exec(str)功能类似. str.search(regexp)与regexp.test(str)功能类似. ...

  8. JavaScript正则进阶之路——活学妙用奇淫正则表达式

    原文收录在我的 GitHub博客 (https://github.com/jawil/blog) ,喜欢的可以关注最新动态,大家一起多交流学习,共同进步,以学习者的身份写博客,记录点滴. 有些童鞋肯定 ...

  9. Javascript之登陆验证

    匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] 匹配空行的正则表达式:\n[\s| ]*\r 匹配网址URL的正则表达式:http ...

  10. JavaScript正则实战

    *:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !impor ...

随机推荐

  1. ndk学习19: 使用Eclipse调试so

    1.  设置调试选项 在AndroidManifest文件加入允许调试 android:debuggable="true"   此时编译项目会多出: 2.  配置调试代码 把需要调 ...

  2. 【GoLang】GoLang 遍历 map、slice、array方法

    代码示例: map1 := make(map[string]string) map1["a"] = "AAA" map1["b"] = &q ...

  3. 《Head First Servlet JSP》容器工作原理(如tomcat)

  4. std::map

    1.例: map<int,string> m_mapTest; m_mapTest.insert(make_pair(1,"kong")); m_mapTest.ins ...

  5. [Linux]centOS7下RPM安装Perl

    1.下载rpm依赖包,依照顺序安装. perl-parent-0.225-244.el7.noarch   perl-HTTP-Tiny-0.033-3.el7.noarch   perl-podla ...

  6. 5.SpringMVC静态文件的访问

    我们在进行springMVC开发时,必定会在jsp页面引入js文件.img文件和css文件.大多数人会将这些分类存放在WebRoot文件下新建的文件夹下面.同时,会在web.xml文件中配置拦截所有请 ...

  7. webpack学习笔记一

    主要参考: https://blog.madewithlove.be/post/webpack-your-bags/ 起因: 作为运维狗, 对前端一窍不通但心向往之, 最近做一个Dashboard, ...

  8. ASM:《X86汇编语言-从实模式到保护模式》1-4章:处理器,内存和硬盘基础

    其实很久之前就学完了实模式了,但是一直没有总结,感觉现在直接在书上做笔记的弊端就是有些知识点不能很很深刻地记下来(毕竟手写最明显的优点就是能深刻地记住知识,但是就是用太多的时间罢了).一下内容都是一些 ...

  9. 【leetcode】Search in Rotated Sorted Array (hard)

    Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...

  10. October 9th 2016 Week 41st Sunday

    No matter how resourceful you are, you can't fight fate. 人纵有万般能耐,终也敌不过天命. I find that I gradually be ...