转载源:http://blog.csdn.net/lun379292733/article/details/8169807

<script type="text/JavaScript">
/*
 * 手机号码格式
 * 只允许以13、15、18开头的号码
 * 如:13012345678、15929224344、18201234676
 */
var regMobile=/^1[3,5,8]\d{9}$/;

/*
 * 固定电话号码格式
 * 因为固定电话格式比较复杂,情况比较多,主要验证了以下类型
 * 如:010-12345678、0912-1234567、(010)-12345678、(0912)1234567、(010)12345678、(0912)-1234567、01012345678、09121234567
 */
var regPhone=/^(^0\d{2}-?\d{8}$)|(^0\d{3}-?\d{7}$)|(^0\d2-?\d{8}$)|(^0\d3-?\d{7}$)$/;

/*
 * Email邮箱
 * 如:zhangsan@163.comli-si@236.netwan_gwu999@SEED.NET.TW
 */
var regEmail=/^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+(\.[a-zA-Z]{2,3})+$/;

/*
 * 身份证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=/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;

//如果通过该验证,说明身份证格式正确,但准确性还需计算
 if(regIdCard.test(idCard)){
  if(idCard.length==18){
   var idCardWi=new Array( 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ); //将前17位加权因子保存在数组里
   var idCardY=new Array( 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ); //这是除以11后,可能产生的11位余数、验证码,也保存成数组
   var idCardWiSum=0; //用来保存前17位各自乖以加权因子后的总和
   for(var i=0;i<17;i++){
    idCardWiSum+=idCard.substring(i,i+1)*idCardWi[i];
   }

var idCardMod=idCardWiSum%11;//计算出校验码所在数组的位置
   var idCardLast=idCard.substring(17);//得到最后一位身份证号码

//如果等于2,则说明校验码是10,身份证号码最后一位应该是X
   if(idCardMod==2){
    if(idCardLast=="X"||idCardLast=="x"){
     alert("恭喜通过验证啦!");
    }else{
     alert("身份证号码错误!");
    }
   }else{
    //用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
    if(idCardLast==idCardY[idCardMod]){
     alert("恭喜通过验证啦!");
    }else{
     alert("身份证号码错误!");
    }
   }
  } 
 }else{
  alert("身份证格式不正确!");
 }
}

/*
 * 只能为正整数
 */
var regNum=/^\d+$/;

/*
 * 邮政编码
 */
var regPostCode=/^\d{6}$/;

/*
 * 用户名
 * 只能是字母数字下划线,并且以字母开头(5-16位)
 */
var regUserName=/^[a-zA-Z]\w{4,15}$/;

/*
 * IP地址
 * 如:192.168.1.102
 */
var regIP=/^((([1-9]\d?)|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}(([1-9]\d?)|(1\d{2})|(2[0-4]\d)|(25[0-5]))$/;

/*
 * 只能是中文汉字
 */
var regChineseChar=/^[\u4e00-\u9fa5]+$/;

/*
 * 网址
 * 只允许http、https、ftp这三种
 * 如:http://www.baidu.com
 */
var regWeb=/^(([hH][tT]{2}[pP][sS]?)|([fF][tT][pP]))\:\/\/[wW]{3}\.[\w-]+\.\w{2,4}(\/.*)?$/;

/*
 * 日期格式验证
 * 因为日期格式比较多,主要验证了以下类型
 * 2012-05-14、2012/05/6、2012.5.14、20120528
 */
var regDate=/^[1-9]\d{3}([-|\/|\.])?((0\d)|([1-9])|(1[0-2]))\1(([0|1|2]\d)|([1-9])|3[0-1])$/;

/*
 * 调用以上正则表达式的方法
 * 以验证电话号码格式为例
 */
function onCheck(tel){
 if(regMobile.test(tel)){
  alert("恭喜通过验证啦!");
  
 }else{
  alert("格式不正确!");
 }
}
</script>

常用正则表达式:手机、电话、邮箱、身份证、IP地址、网址、日期等的更多相关文章

  1. JavaScript正则表达式检验手机号码、邮箱、ip地址等

    1)检测IP地址的正则表达式 ((2 [0-4] \d | 25[0-5] | [01]?\d\d?) \.){3}(2 [0-4] \d | 25[0-5] | [01]?\d\d?) 2 [0-4 ...

  2. 手机归属地查询-IP地址查询-身份证查询-域名备案查询--Api接口

    使用这些接口是需要密钥的 公共密钥 appkey: 10003  secret: d1149a30182aa2088ef645309ea193bf  生成后sign: b59bc3ef6191eb9f ...

  3. .net验证是否合法邮箱和ip地址的方式

    通常情况下第一时间会想到使用正则表达式去验证,但由于正则表达式过于复杂或者没有考虑到某些情况,从而导致问题或者判断的效率低.下面通过另一种方式去判断. 判断是否合法邮箱: /// <summar ...

  4. php正则表达式验证手机/固定电话/邮箱/身份证/银行卡自定义函数

    /** * 验证手机号码格式 * @param string $phone 手机号 * @return boolean */ function is_phone($phone) { $chars = ...

  5. iOS开发之 获取手机的网络的ip地址

    首先在使用的地方导入 #include <ifaddrs.h> #include <arpa/inet.h> 然后直接调用 - (NSString *)getIPAddress ...

  6. win10连接无线网,开启移动热点,手机连接它手机一直显示获取ip地址中。

    *必须要有无线网卡才能设置WIFI首先打开电脑,选中“计算机”或者“我的电脑”,右击进入“管理”选项“.打开“计算机管理”窗口之后,在左栏菜单选项中找到“服务和应用程序”下的“服务”选项,如图点击进入 ...

  7. 获得手机当前的ip地址

    package com.kale.floating.net; import java.net.Inet4Address; import java.net.InetAddress; import jav ...

  8. Android 手机上获取手机当前上网IP地址

      [转] 原文              Android 手机上获取手机当前上网IP地址                (手机网关给手机号分配的IP) 每个手机上网通过移动网关的时候,网关都会给该手 ...

  9. 如何查看连接到手机热点的ip地址

    因为最近玩树莓派,需要手机做热点,然后用树莓派连接到这个热点上,苦于不知道树莓派被分配了什么样的ip地址,经过一番探索,我发现了两种办法, 安装一个 android terminal( 安卓命令行), ...

随机推荐

  1. JS学习笔记4_BOM

    1.frame相关对象 top:指向最外层框架,使用top可以在一个框架中访问另一个框架,例如top.frames[index/name] parent:指向当前框架的直接上层框架 window:代码 ...

  2. 发送短信功能(C#)

    参考自:https://blog.csdn.net/whl632359961/article/details/73468115 https://www.cnblogs.com/ywl925/archi ...

  3. 未能加载文件或程序集“System.Web.Http.WebHost, Version=4.0.0.0, ”或它的某一个依赖项。系统找不到指定的文件。

    第一次发布MVC项目,打开网站 未能加载文件或程序集“System.Web.Http.WebHost, Version=4.0.0.0, ”或它的某一个依赖项.系统找不到指定的文件. 问题原因:缺少配 ...

  4. 格式化json日期'/Date(-62135596800000)/'

    日期经过json序列化之后,变成了'/Date(-62135596800000)/'字符串,在显示数据时,我们需要解释成正常的日期. Insus.NET和js库中,写了一个jQuery扩展方法: $. ...

  5. 【转】老左常用国内/国外VPS推荐

    原文:http://www.laozuo.org 老左从使用虚拟主机到VPS,至今也用过不少的商家产品,比如在"TOP10美国虚拟主机/网站空间推荐"有分享目前和曾经使用的虚拟主机 ...

  6. 2019年微服务实践第一课,网易&谐云&蘑菇街&奥思技术大咖深度分享

    微服务的概念最早由Martin Fowler与James Lewis于2014年共同提出,核心思想是围绕业务能力组织服务,各个微服务可被独立部署,服务间是松耦合的关系,以及数据和治理的去中心化管理.微 ...

  7. 2018-2019-2 20175230 实验三《Java面向对象程序设计》实验报告

    目录 实验三 实验三 敏捷开发与XP实践 实验内容 实验要求 实验步骤 (一) 编码标准 (二)敏捷开发与XP (三)敏捷开发与XP 实验体会 实验三 实验三 敏捷开发与XP实践 实验内容 1.XP基 ...

  8. Mac系统安装和卸载brew包管理

    brew 的官网地址  https://brew.sh/ 1.brew的安装 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercon ...

  9. JVM Scan

    1.jmap -histo pid|head -100 2.jstat -gcutil pid cycle 3.jmap -heap pid

  10. jQuery WeUI实现分页功能

    使用前记得先引入:weui.min.css.jquery-weui.min.css.jquery-weui.min.js 第一步:将下面的代码放在body结束标签上面(这个位置可以自己按需求放) &l ...