八個常用的js正則表達式


開篇:開發中如果有input輸入框,難免就要寫正則表達式,因此在這里總結了一些常見常用的正則表達式的書寫方法,希望會大家有所幫助;

附圖:

 

一.手機號碼

 

$(document).ready(function(){
    //判斷輸入手機號碼是否正確
    $("#telephone").focus(function(){
         document.getElementById("ph-hint").innerHTML = "😮請輸入11位手機號碼";

    })
    $("#telephone").blur(function(){
         if(/^((1[3,5,8][0-9])|(14[5,7])|(17[0,6,7,8])|(19[7]))\d{8}$/.test(this.value)){
 document.getElementById("ph-hint").innerHTML = ""; }else if(document.getElementById("telephone").value == ""){ document.getElementById("ph-hint").innerHTML = "🤔咦,手機號不能為空哦"; }else{ document.getElementById("ph-hint").innerHTML = "🙃這好像不是一個手機號碼哦"; document.getElementById("telephone").value = ""; } }) })

 

詳解:當獲取焦點時,提示文字請輸入手機號,然后失去焦點時判斷,那段正則表達式表示的是13幾,這個幾0-9都可以,或者15幾,但是非4的都行,或者18幾,0-9都可以,然后再加8位數字,符合條件則成功,否則根據情況判斷提示文字;

 

二.密碼

$(document).ready(function(){
   //判斷輸入密碼格式是否正確
    $("#setpassword").focus(function(){
         document.getElementById("pw-hint").innerHTML = "😮請您輸入密碼,6-15個字母數字和符號兩種以上組合";

    })
    $("#setpassword").blur(function(){
         if(/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?![,\.#%'\+\*\-:;^_`]+$)[,\.#%'\+\*\-:;^_`0-9A-Za-z]{6,15}$/.test(this.value)){
                document.getElementById("pw-hint").innerHTML = "";
         }else if(document.getElementById("setpassword").value == ""){
                 document.getElementById("pw-hint").innerHTML = "🤔咦,密碼不能為空哦";
         }else{
                document.getElementById("pw-hint").innerHTML = "🙃你的密碼格式有誤,請重新輸入";
                document.getElementById("setpassword").value = "";
         }
    })
})

詳解:當獲取焦點時,提示文字請輸入密碼,然后失去焦點時判斷,那段正則表達式表示的是可以輸入0-9的數字和大小寫的字母a-z,外加一些特殊符號,然后可以輸入6-15位密碼,符合條件則成功,否則根據情況判斷提示文字;

 

*以下格式我就不這樣寫了,簡介一點,上面兩段可以去參考。

 

三.用戶名

//用戶名正則,4到16位(字母,數字,下划線,減號)
var username = /^[a-zA-Z0-9_-]{4,16}$/;
//文字
var username=/[\d]/g;

詳解:正則表達式表示的是可以輸入0-9的數字和大小寫的字母a-z,外加一些特殊符號,然后可以輸入4-16位密碼; 

 

四.電子郵箱

//對電子郵件的驗證
var email = /^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/;

詳解:正則表達式表示的是可以輸入0-9的數字和大小寫的字母a-z,加上@,然后末尾為2-3位的大小寫字母;  

 

五.身份證號

//身份證號(18位)正則
var cP = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;

詳解:正則表達式表示的是前面為多少位數字,末尾為0-9或x結尾;   

 

六.日期

//日期正則,簡單判定,未做月份及日期的判定
var time = /^\d{4}(\-)\d{1,2}\1\d{1,2}$/;
//日期正則,復雜判定
var time = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;

詳解:正則表達式表示的是前面年份為4位數字,加上-,然后月份和日都為2位數字;   

 

七.QQ號以及微信號

 

//QQ號正則,5至11位
var qq = /^[1-9][0-9]{4,10}$/;
//微信號正則,6至20位,以字母開頭,字母,數字,減號,下划線
var wx = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;

 詳解:正則表達式表示的是可以輸入4-10位數字,微信為5-19位數字加字母組合;  

 

八.座機號

//座機號
var tel =/(^0\d{2}-8\d{7}$)|(^0\d{3}-3\d{6}$)/;

 

 

附加:發送驗證碼倒計時寫法

 

<input class="login-code-send" id="login-code-send" type="button" name="sendcode" value="發送驗證碼" onclick="settime(this);"/>

 

//登錄,忘記密碼的驗證碼
var counts = 60;

function settime(val) {
    if (counts == 0) {
        val.removeAttribute("disabled");
        val.value = "獲取驗證碼";
        counts = 60;
        return false;
    } else {
        val.setAttribute("disabled", true);
        val.value = "重新發送("+counts+")";
        counts--;
    }
    setTimeout(function () {
        settime(val);
    }, 1000);
}

 

總結:老三套,有問題留言,有意見反饋,有時間回復,共同加油,共同進步!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM