php正则验证input只能输入手机号、座机号、邮箱

本文介绍如何使用PHP和JavaScript验证电话号码及电子邮件地址的有效性。包括正则表达式的使用技巧及常见错误修正。

1、PHP验证字符串,验证联系电话和邮箱:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// 验证联系电话
$isMob="/^1[34578]{1}\d{9}$/";
 
$isTel="/^([0-9]{3,4}-)?[0-9]{7,8}$/";
 
$phone '13088568856';
 
if(!preg_match($isMob,$phone) && !preg_match($isTel,$phone)){
 
    echo '联系电话不正确';
 
}else{
 
    echo '联系电话正确';
    
}
 
 
// 验证邮箱方法1
$isEmail '/^([\.a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/'
 
$email '28126649@qq.com';
 
if(!preg_match($isEmail,$email)){
  
    echo '邮箱不正确';
  
}else{
  
    echo '邮箱正确';
      
}
 
// 验证邮箱方法1
/*
    利用filter_var函数验证。
    filter_var可验证:
    IP 、邮箱、URL地址。
 
    具体用法可查看PHP手册
 */
$email '28126649@qq.com';
if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
    echo '邮箱不正确';
}else{
    echo '邮箱正确';
}


2、JS验证邮箱格式是否正确:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//邮箱验证
function email(){
 
    var email  = $("input[name='email']").val();
     
    var pattern = /^([\.a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/; 
     
    if(email == ""){
     
        layer.tips('邮箱不能为空!', $("input[name='email']") ,{
         
            tips: [3, 'red'],
             
            time: 2000
             
        });
         
        return false;
         
    }else if (!pattern.test(email)) {
        
        layer.tips('请输入正确的邮箱地址!', $("input[name='email']") ,{
         
            tips: [3, 'red'],
             
            time: 2000
             
        });
         
        return false;
         
    }else{
     
        return true;
    }
     
}

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

  1. <?php  
  2. /**  
  3.  * php中验证手机号  
  4.  * @param $mobile  
  5.  * @return bool  
  6.  */  
  7.     function is_mobile($mobile){  
  8.         $chars = "/^13[0-9]{1}[0-9]{8}$|15[0-9]{1}[0-9]{8}$|18[0-9]{1}[0-9]{8}$/";  
  9.         if (preg_match($chars, $mobile)){  
  10.             return true;  
  11.         }else{  
  12.             return false;  
  13.         }  
  14.     }  
  15.   
  16.   
  17. /**  
  18.  * js中验证手机号  
  19.  * @param mobile  
  20.  * @return bool  
  21.  */  
  22.    function is_mobile(mobile){  
  23.         var chars = /^13[0-9]{1}[0-9]{8}$|15[0-9]{1}[0-9]{8}$|18[0-9]{1}[0-9]{8}$/;  
  24.         if (chars.test(mobile)){  
  25.             return true;  
  26.         }else{  
  27.             return false;  
  28.         }  
  29.     }  
  30.       
  31.     /**  
  32.      * php中验证输入的邮件地址是否合法  
  33.      * @param   string      $email      需要验证的邮件地址  
  34.      * @return bool  
  35.      */  
  36.     function is_email($email)  
  37.     {  
  38.         $chars = "/^([a-z0-9+_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,6}\$/i";  
  39.         if (strpos($email, '@') !== false && strpos($email, '.') !== false)  
  40.         {  
  41.             if (preg_match($chars, $email))  
  42.             {  
  43.                 return true;  
  44.             }  
  45.             else  
  46.             {  
  47.                 return false;  
  48.             }  
  49.         }  
  50.         else  
  51.         {  
  52.             return false;  
  53.         }  
  54.     }  
  55.   
  56.   
  57. /**  
  58.  * js验证输入的邮件地址是否合法  
  59.  * @param email  
  60.  * @return bool  
  61.  */  
  62. function is_email(email){  
  63.     var chars = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;  
  64.         if (chars.test(email)){  
  65.             return true;  
  66.         }else{  
  67.             return false;  
  68.         }  
  69.     }  
  70.   
  71. /**  
  72.  * js验证身份证号码  
  73.  * @param card  
  74.  * @returns {boolean}  
  75.  */  
  76. function isCardNo(card)  
  77.     {  
  78.         // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X  
  79.         var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;  
  80.         if(reg.test(card) === false)  
  81.         {  
  82.             alert("身份证输入不合法");  
  83.             return  false;  
  84.         }  
  85.         return true;  
  86.     }  
  87.   
  88.     注意:js中的正则不能写在 "" 中;  
  89.  ?>

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

1.先说匹配手机号:

       正常的正则表达式为:

              /1[3458]{1}\d{9}/

      但是如果是中国电信以17开头的就匹配不到,所以应该修正为

             /1[34578]{1}\d{9}/

2.再是邮箱

       之前用正则表达式为:

             /(([a-z0-9]*[-_]?[a-z0-9]+[-_.]?)*@([a-z0-9]*[-_]?[a-z]+)+[\.][a-z]{2,3}([\.][a-z]{1,3})?)

       如果遇到***@vip.163.com就匹配不到,所以修正为

            /(([a-z0-9]*[-_]?[a-z0-9]+[-_.]?)*@([a-z0-9]*[-_]?[a-z]+)+[\.][a-z0-9]{2,3}([\.][a-z]{1,3})?)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值