最新密碼驗證正規表示式
正規表示式驗證密碼功能在專案中經常被使用到,但是很多朋友還是不大會使用密碼正規表示式進行驗證,本文小編為大家整理了php密碼驗證正規表示式、python密碼強度正則,當然還有大家常用到的js正規表示式,希望大家喜歡。
剛開始複習一下
,什麼是正規表示式?
在編寫處理字串的程式或網頁時,經常有查詢符合某些複雜規則的字串的需要。正規表示式就是用於描述這些規則的工具。換句話說,正規表示式就是記錄文字規則的程式碼。
php密碼驗證正規表示式(8位長度限制)
<?php //密碼驗證 $password = "zongzi_Abc_oo13a2"; $n = preg_match_all("/^[a-zA-Z\d_]{8,}$/",$password,$array); //長度是8或更多 var_dump($array); ?>
python密碼驗證正規表示式
#encoding=utf-8 import re def checklen(pwd): return len(pwd)>=8 def checkContainUpper(pwd): pattern = re.compile('[A-Z]+') match = pattern.findall(pwd) if match: return True else: return False def checkContainNum(pwd): pattern = re.compile('[0-9]+') match = pattern.findall(pwd) if match: return True else: return False def checkContainLower(pwd): pattern = re.compile('[a-z]+') match = pattern.findall(pwd) if match: return True else: return False def checkSymbol(pwd): pattern = re.compile('([^a-z0-9A-Z])+') match = pattern.findall(pwd) if match: return True else: return False def checkPassword(pwd): #判斷密碼長度是否合法 lenOK=checklen(pwd) #判斷是否包含大寫字母 upperOK=checkContainUpper(pwd) #判斷是否包含小寫字母 lowerOK=checkContainLower(pwd) #判斷是否包含數字 numOK=checkContainNum(pwd) #判斷是否包含符號 symbolOK=checkSymbol(pwd) print(lenOK) print(upperOK) print(lowerOK) print(numOK) print(symbolOK) return (lenOK and upperOK and lowerOK and numOK and symbolOK) def main(): if checkPassword('Helloworld#123'): print('檢測通過') else: print('檢測未通過') if __name__ == '__main__': main()
java密碼驗證正規表示式
/** * @ClassName: RexTest * @Description: TODO * @author BMR * @date 2016年3月28日 上午11:09:17 */ public class RexTest { /** * 正規表示式驗證密碼 * @param input * @return */ public static boolean rexCheckPassword(String input) { // 6-20 位,字母、數字、字元 //String reg = "^([A-Z]|[a-z]|[0-9]|[`-=[];,./~!@#$%^*()_+}{:?]){6,20}$"; String regStr = "^([A-Z]|[a-z]|[0-9]|[`~!@#$%^&*()+=|{}':;',\\\\[\\\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“'。,、?]){6,20}$"; return input.matches(regStr); } public static void main(String[] args){ System.out.println("rexCheckPassword is: "+ rexCheckPassword("14`~!@#$%^&*(\\)+=|{}")); }
輸出結果:
rexCheckPassword is: true
網友提出的問題:
正規表示式校驗密碼
1、密碼必須由數字、字元、特殊字元三種中的兩種組成;
2、密碼長度不能少於8個字元;
滿足以上兩點,應該怎麼實現?
(?!^\\d+$)不能全是數字
(?!^[a-zA-Z]+$)不能全是字母
(?!^[_#@]+$)不能全是符號(這裡只列出了部分符號,可自己增加,有的符號可能需要轉義)
.{8,}長度不能少於8位
合起來就是
(?!^\\d+$)(?!^[a-zA-Z]+$)(?!^[_#@]+$).{8,}
完整的 js正規表示式:
//強:字母+數字+特殊字元 ^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&*]+$)(?![\d!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$ //中:字母+數字,字母+特殊字元,數字+特殊字元 ^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$ //弱:純數字,純字母,純特殊字元 ^(?:\d+|[a-zA-Z]+|[!@#$%^&*]+)$ //校驗是否全由數字組成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } //校驗登入名:只能輸入5-20個以字母開頭、可帶數字、“_”、“.”的字串 function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; if (!patrn.exec(s)) return false return true } function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; if (!patrn.exec(s)) return false return true } //校驗使用者姓名:只能輸入1-30個以字母開頭的字串 Javascript程式碼 function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) return false return true } }} //校驗密碼:只能輸入6-20個字母、數字、下劃線 function isPasswd(s) { var patrn=/^(\w){6,20}$/; if (!patrn.exec(s)) return false return true } //校驗普通電話、傳真號碼:可以“+”開頭,除數字外,可含有“-” function isTel(s) { //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/; var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true } //校驗手機號碼:必須以數字開頭,除數字外,可含有“-” function isMobil(s) { var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true } //校驗郵政編碼 function isPostalCode(s) { //var patrn=/^[a-zA-Z0-9]{3,12}$/; var patrn=/^[a-zA-Z0-9 ]{3,12}$/; if (!patrn.exec(s)) return false return true } //校驗搜尋關鍵字 function isSearch(s) { var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\] [\]\{\}:;'\,.<>?]{0,19}$/; if (!patrn.exec(s)) return false return true } function isIP(s) //by zergling { var patrn=/^[0-9.]{1,20}$/; if (!patrn.exec(s)) return false return true }
正規表示式
^\\d+$ //非負整數(正整數 + 0) ^[0-9]*[1-9][0-9]*$ //正整數 ^((-\\d+)|(0+))$ //非正整數(負整數 + 0) ^-[0-9]*[1-9][0-9]*$ //負整數 ^-?\\d+$ //整數 ^\\d+( //非負浮點數(正浮點數 + 0) ^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$ //正浮點數 ^((-\\d+( //非正浮點數(負浮點數 + 0) ^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //負浮點數 ^(-?\\d+)( //浮點數 ^[A-Za-z]+$ //由26個英文字母組成的字串 ^[A-Z]+$ //由26個英文字母的大寫組成的字串 ^[a-z]+$ //由26個英文字母的小寫組成的字串 ^[A-Za-z0-9]+$ //由數字和26個英文字母組成的字串 ^\\w+$ //由數字、26個英文字母或者下劃線組成的字串 ^[\\w-]+( //email地址 ^[a-zA-z]+://( //url ^[A-Za-z0-9_]*$
匹配完整域名的正規表示式:
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
想系統學習的朋友可以繼續閱讀: ,進一步加深對正規表示式的認識。
系列文章1:
以上就是本文的全部內容,希望對大家的學習有所幫助。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015107/viewspace-2874049/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 強密碼驗證正規表示式密碼
- JS正規表示式驗證JS
- 正規表示式驗證工具
- 郵箱驗證正規表示式程式碼
- QQ號碼驗證正規表示式程式碼
- 驗證證書的正規表示式
- JS正規表示式的驗證JS
- ip格式驗證正規表示式
- 驗證正整數正規表示式程式碼例項
- JS常用正規表示式及驗證時間的正規表示式JS
- 郵箱地址正規表示式驗證
- javascript常用的驗證正規表示式JavaScript
- 驗證小數正規表示式程式碼例項
- 驗證經緯度格式正規表示式程式碼
- js驗證手機號碼的正規表示式JS
- 郵箱驗證正規表示式例項程式碼
- 驗證ip地址正規表示式程式碼例項
- js驗證郵箱的正規表示式程式碼JS
- js郵箱驗證正規表示式例項程式碼JS
- 正規表示式數字數字型別驗證程式碼型別
- 驗證郵箱格式正規表示式程式碼例項
- 正規表示式驗證郵箱及其解析
- 驗證控制元件與正規表示式控制元件
- 正規表示式驗證Ip地址(絕對正確)
- 驗證網址合法性的正規表示式程式碼
- C#驗證郵件的正規表示式的程式碼C#
- C#驗證是不是正整數 正規表示式C#
- JS正規表示式驗證數字(非常全)JS
- 驗證IE瀏覽器的正規表示式瀏覽器
- 驗證字元是否為中文的正規表示式字元
- 圖片格式型別驗證正規表示式型別
- 驗證字串格式的正規表示式羅列字串
- js正規表示式驗證手機,郵箱,身份證JS
- js正規表示式驗證URL函式程式碼(方便多個正則對比)JS函式
- 正規表示式驗證密碼格式和長度程式碼例項密碼
- 身份證號碼的正規表示式及驗證詳解(JavaScript,Regex)JavaScript
- Java正規表示式——驗證手機號和電話號碼Java
- 驗證二進位制數字正規表示式