$IdCard = "/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/i";
提示 :正则格式: ‘/正则表达式/模式修正符’;
所以 添加 i 是忽略英文字母大小写的
一般地 身份证有15位或18位 18位的最后一位还有可能是字母X或x
/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/
15: /^\d{14}(\d|x)$/
18: /^\d{17}(\d|x)$/
这样就可以了,不用那么复杂吧
看看这个:http://hi.baidu.com/bbee888/blog/item/f07737933dc60d80a877a429.html