常用的正则表达式编写

验证是否为有效数字

/*
 * 可能是正数,可能是负数  12 -12
 * 整数或者小数 0 12 0.2 12.5 -12.3
 * 只要出现小数点,后面至少要跟一位数字
 * 小数点前面必须有数字
 */
var reg = /^-?(d|([1-9]d+))(.d+)?$/;
/*
 *  -? 负号可有可无
 *  (d|([1-9]d+))
 *     d 一位数可以是任何值
 *     ([1-9]d+) 多位数不能以零开头
 *  (.d+)? 小数部分可有可无,有的话点后面必须跟一位数字
 */


手机号码

/*
 * 11位数字
 * 1开头
 */
var reg = /^1d{10}$/;


用户名:真实姓名

//=>/^[u4E00-u9FA5]$/ 中文汉字的正则
var reg = /^[u4E00-u9FA5]{2,10}(·[u4E00-u9FA5]{2,10})?$/;


邮箱

var reg = /^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/;
/*
 * 以数字字母下划线开头
 * @前面可以是 数字、字母、下划线、-、. 这些符号
 * 不能把 -和. 连续出现,出现一次后面必须跟数字字母下划线
 *  
 * @后面的部分支持
 *   企业邮箱
 *   .com.cn 多域名情况
 */
// [A-Za-z0-9]+
// ((.|-)[A-Za-z0-9]+)*
// .[A-Za-z0-9]+
// @163.com.cn
// @zhu-feng-pei-xun.com.cn


身份证号码

/*
 * 18位
 * 前17位必须是数字
 * 最后一位可以是数字或者X(X代表数字10)
 *  
 * 130828199012040617
 *   前六位:省市县 130828
 *   接下来八位 出生年+月+日
 *   倒数第二位数字 奇数代表男 偶数代表女
 */
var reg = /^(d{6})(d{4})(d{2})(d{2})d{2}(d)(d|X)$/;
//=>这样写不仅可以匹配,而且以后捕获的时候,不仅可以把大正则匹配的结果捕获到,
    里面每一个小分组(小正则)匹配的结果也可以单独的捕获到 “分组捕获”

//=>年 1950~2017
//=>第一段 1950~1999
//=>第二段 2000~2017
//==> 00~09
//==> 10~17
//  /^((19[5-9]d)|(20((0d)|(1[0-7]))))$/