1. 程式人生 > >正則表示式 匹配 使用者名稱/密碼/Email/身份證

正則表示式 匹配 使用者名稱/密碼/Email/身份證

通過正則表示式匹配 使用者名稱/密碼/Email/身份證

  • 使用者名稱(4到16位,字母數字下劃線,減號):

      /^[-_a-zA-Z0-9]{4,16}$/
    

    解釋:在字元組中表示:匹配若干字元之一,這裡就是匹配‘-’ , ‘_’ 和字母,數字其中之一,最後的{4,16}表示匹配4~16個字元組中的字元。


  • Email:

      /^[a-zA-Z0-9]{1,10}@[a-zA-Z0-9]{1,5}\.[a-zA-Z0-9]{1,5}$/
    

    解釋:此正則和使用者名稱正則大同小異,就是在中間加了‘@’與元字元‘.’ 所以我們要在‘.’前進行轉義,否則就代表匹配任意單個字元了。


  • 身份證:

      /^\d{17}(\d|x|X)$/
    

    解釋:\d表示匹配數字。身份證由17數字,第十八位可能為數字或者X字母。所以我們首先進行17位的數字匹配,再進行最後一位的匹配,\d|x|X就表示匹配數字或者‘x’或者’X’。


  • 密碼(最少6位,包括至少一位大寫字母,一位小寫字母,一個數字,一個特殊字元):

      /(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[[email protected]!%*#?&])[A-Za-z\[email protected]!%*#?&]{6,}$/
    

    解釋:
    這裡最先的 (?=.*[A-Z]) 是正則表示式的環視,表示必須滿足“在此位置後為 .*[A-Z])”才能匹配成功。意思是,匹配成功的表示式必須滿足:存在大寫字母。因為 [A-Z] 前為. * 。所以字母前可以存在任何字元。
    (注意:環視不消耗正則的匹配字元。)
    一位小寫字母,一個數字,一個特殊字元的匹配也是類似的。
    最後的:[A-Za-z\[email protected]!%*#?&]{6,}與匹配使用者名稱類似,但這裡值得注意的是,因為環視不消耗正則的匹配字元,它就相當於一個判斷,所以我們這裡字元組中的字元必須包含:字母,數字,特殊字元,且匹配的數量應為6+而不是2+。