function checkPhone(){ var phone = document.getElementById('phone').value; if(!(/^1[34578]\d{9}$/.test(phone))){ alert("手机号码有误,请重填"); return false; } }
或者javascript
function checkPhone(){ var phone = document.getElementById('phone').value; if(!(/^1(3|4|5|7|8)\d{9}$/.test(phone))){ alert("手机号码有误,请重填"); return false; } }
或者java
function checkPhone(){ var phone = document.getElementById('phone').value; if(!(/^1(3,4,5,7,8)\d{9}$/.test(phone))){ alert("手机号码有误,请重填"); return false; } }
正则里面的中括号[]只能匹配其中一个,若是要匹配特定几组字符串的话,那就必须使用小括号()加或|,我还觉得在中括号中也能使用或|符号,原来|在中括号里面也是一个字符,并不表明或。[3457]匹配3或者4或者5或者7,而(3457)只匹配3457,若要跟前面同样能够加或(3|4|5|7)。[34|57]匹配3或者4或者|或者5或者7.而(34|57)能匹配34或者57。web
下面简单的解释一下:正则表达式
^1(3|4|5|7|8)\d{9}$
表示以1开头,第二位多是3/4/5/7/8等的任意一个,在加上后面的\d表示数字[0-9]的9位,总共加起来11位结束。svg
原本只容13,15,17,18,开头的手机号,可是听说有14开头的号码,因此添加了14;固然,若是之后要是发展成有16,或者19,之类的开头号码的话,在添加到正则表达式中便可spa
function checkTel(){ var tel = document.getElementById('tel').value; if(!/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(tel)){ alert('固定电话有误,请重填'); return false; } }
//身份证正则表达式(15位) isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/; //身份证正则表达式(18位) isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/; 身份证正则合并:(^\d{15}$)|(^\d{17}([0-9]|X)$)