比如:23955558888,13700596648,010-62607878
現正則:/^(1\d{10})|(0\d{2,3}-?\d{7,8}(-\d{3,4})?$)/
這樣可以匹配出座機不正確的,但是手機號卻被當做座機處理了。
求正解!
補充:
我用笨辦法處理的:接收到子串後,用split分割開,再逐一驗證的
手機號不會以 除 1 以外的數字開頭;
先split分割,然後調用這個函數:
function checkMobile(str) {
var rePhone = /^((\+?86)|(\(\+86\)))?1\d{10}$/;
var Tel = /^((\+?86)|(\(\+86\)))?\d{3,4}-\d{7,8}(-\d{3,4})?$/;
if (rePhone.test(str)||Tel.test(str)) {
//是手機或者座機
} else {
//匹配失敗
}
}