手机号
/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/
传真~
/^(\d{3,4}-)?\d{7,8}$/
邮箱
^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$
URL
/^([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/;
var reg = /^1[0-9]{10}$/;
function checkPhone(){
var phone = document.getElementById('phone').value;
if(!(/^1[3|4|5|7|8]\d{9}$/.test(phone))){
alert("手机号码有误,请重填");
return false;
}
}
var check = /^[0-9]{6}$/;
var partten = ^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$;
var checkFax = /^(\d{3,4}-)?\d{7,8}$/;
//对表单进行验证
if(companyName==null||companyName==""){
$('#ajaxinfo').html('<br><font color="red">名称不为空,不能大于40个字符</font>');
return false;
}
var str =companyName.split(" ");
companyName ="";
for(var i = 0;i<str.length;i++)
{
if(str[i]==" "){
str[i] = "";
}
if(str[i].indexOf(" ")!=-1){
str[i].replace(" ","");
}
companyName += " "+str[i];
}
if(!partten.test(companyName)){
$('#ajaxinfo').html('<br><font color="red">名称只能为中文和英文(可以包含空格)</font>');
return false;
}
if(!checkMobile()){
return false;
}
if(!checkName()){
return false;
}
if(!checkAddressLength()){
return false;
}
if(fax!=""){
if(!checkFax.test(fax)){
aert(fax);
alert("传真格式为:XXX-12345678或XXXX-1234567或XXXX-12345678");
return false;
}
}
if(postcode!=""){
if(!check.test(postcode)){
alert("邮编格式不正确!");
return false;
}
}
看到网上很多代码都很复杂,还包括以中文开头的86,17951,其实谁会填这么多,无非是检验一下他们是否位数对不对,开头有没有写错而已。下面我们从百度百科的手机号码历程来看:现在的手机号码段有联通、移动和电信。
电信
中国电信手机号码开头数字
2G/3G号段(CDMA2000网络)133、153、180、181、189
4G号段 177
联通
中国联通手机号码开头数字
2G号段(GSM网络)130、131、132、155、156
3G上网卡145
3G号段(WCDMA网络)185、186
4G号段 176、185[1]
移动
中国移动手机号码开头数字
2G号段(GSM网络)有134x(0-8)、135、136、137、138、139、150、151、152、158、159、182、183、184。
3G号段(TD-SCDMA网络)有157、187、188
3G上网卡 147
4G号段 178
从以上我们可以看到第一位是【1】开头,第二位则则有【3,4,5,7,8】,第三位则是【0-9】,第三位之后则是数字【0-9】。从而我们可以得出一个符合当前的手机号码验证正则表达式。
var reg = /^1[3|4|5|7|8][0-9]{9}$/; //验证规则 var phoneNum = '15507621999';//手机号码 var flag = reg.test(phoneNum); //true
但你想过没有,也许这个第二位代码可能随时增加一个,比如以16开头呢?19开头呢?谁知道以后的事,咱们的代码要保证几年没问题,所以还可以不验证第二位规则:
密码验证
用户名验证
function rr(val){ reg = /^[\u4E00-\u9FA5]{2,4}$/; if(!reg.test(val)){ document.getElementById('t').innerHTML = '不符合标准!'; }else{ document.getElementById('t').innerHTML = '符合标准!'; } }