首先正则表达式正确与否要看你的想要验证的内容,
比如 身份证号验证 很多人都是写成 \d{15}|\d{18}
我在某些网上验证身份证号就很郁闷,因为我的身份证号最后一位是X,所以验证不了
下面分析下你写的吧,
1、身份证号
var shen=/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/;
从上面可以看出你想要验证18位(同时带X)和15位的
先说说你的问题吧\d{18,18}是最小18次,最大18次,比较多余,可以替换为\d{18}就可以了,意思 是18个数字,还有最后的X可能是大写也可能是小写的,所以改成[xX]
var shen=/^(\d{18}|\d{15}|\d{17}[xX])$/;
其实还可以更简单,把18位的都写到一起
var shen=/^(\d{17}[\dxX]|\d{15})$/;
17位数字,最后一位是数字或者大小写x
2、中文
var daxue=/ [u4e00-u9fa5]/;
这个就是验证中文的范围,没有什么可讨论的了
3、手机号码
这个我真没看明白你的意图
可以以+号开头
然后是3位数字
可以出现1个空格
可以出现1个-号
然后数字或者空格1到12次?
var tle=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
纯手机号码(不包括小灵通)一般是11位,第一位为1,第二三位为固定的几个数字,后面是8位任意数字
按这种需求写的话,就是
13\d 130-139
15[0,1,3,5,8,9] 150,151,153,158,159//不是很确定151和150现在有没
18[89] //188和189
最后组合起来就是
var tle=/^1(3\d|5[0,1,3,5,8,9]|8[89]\d{8})$/;
如果还有不明白的给我留言或者百度HI我吧