這篇文章主要為大家展示了“如何實(shí)現(xiàn)密碼驗(yàn)證的正則表達(dá)式”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何實(shí)現(xiàn)密碼驗(yàn)證的正則表達(dá)式”這篇文章吧。
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的應(yīng)城網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
什么是正則表達(dá)式?
在編寫處理字符串的程序或網(wǎng)頁(yè)時(shí),經(jīng)常有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達(dá)式就是用于描述這些規(guī)則的工具。換句話說(shuō),正則表達(dá)式就是記錄文本規(guī)則的代碼。
php密碼驗(yàn)證正則表達(dá)式(8位長(zhǎng)度限制)
python密碼驗(yàn)證正則表達(dá)式
#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): #判斷密碼長(zhǎng)度是否合法 lenOK=checklen(pwd) #判斷是否包含大寫字母 upperOK=checkContainUpper(pwd) #判斷是否包含小寫字母 lowerOK=checkContainLower(pwd) #判斷是否包含數(shù)字 numOK=checkContainNum(pwd) #判斷是否包含符號(hào) 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('檢測(cè)通過(guò)') else: print('檢測(cè)未通過(guò)') if __name__ == '__main__': main()
java密碼驗(yàn)證正則表達(dá)式
/** * @ClassName: RexTest * @Description: TODO * @author BMR * @date 2016年3月28日 上午11:09:17 */ public class RexTest { /** * 正則表達(dá)式驗(yàn)證密碼 * @param input * @return */ public static boolean rexCheckPassword(String input) { // 6-20 位,字母、數(shù)字、字符 //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`~!@#$%^&*(\\)+=|{}")); }
輸出結(jié)果:
rexCheckPassword is: true
網(wǎng)友提出的問(wèn)題:
正則表達(dá)式校驗(yàn)密碼
1、密碼必須由數(shù)字、字符、特殊字符三種中的兩種組成;
2、密碼長(zhǎng)度不能少于8個(gè)字符;
滿足以上兩點(diǎn),應(yīng)該怎么實(shí)現(xiàn)?
(?!^\\d+$)不能全是數(shù)字
(?!^[a-zA-Z]+$)不能全是字母
(?!^[_#@]+$)不能全是符號(hào)(這里只列出了部分符號(hào),可自己增加,有的符號(hào)可能需要轉(zhuǎn)義)
.{8,}長(zhǎng)度不能少于8位
合起來(lái)就是
(?!^\\d+$)(?!^[a-zA-Z]+$)(?!^[_#@]+$).{8,}
完整的js正則表達(dá)式:
//強(qiáng):字母+數(shù)字+特殊字符 ^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&*]+$)(?![\d!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$ //中:字母+數(shù)字,字母+特殊字符,數(shù)字+特殊字符 ^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$ //弱:純數(shù)字,純字母,純特殊字符 ^(?:\d+|[a-zA-Z]+|[!@#$%^&*]+)$ //校驗(yàn)是否全由數(shù)字組成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } //校驗(yàn)登錄名:只能輸入5-20個(gè)以字母開(kāi)頭、可帶數(shù)字、“_”、“.”的字串 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 } //校驗(yàn)用戶姓名:只能輸入1-30個(gè)以字母開(kāi)頭的字串 Javascript代碼 function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) return false return true } }} //校驗(yàn)密碼:只能輸入6-20個(gè)字母、數(shù)字、下劃線 function isPasswd(s) { var patrn=/^(\w){6,20}$/; if (!patrn.exec(s)) return false return true } //校驗(yàn)普通電話、傳真號(hào)碼:可以“+”開(kāi)頭,除數(shù)字外,可含有“-” 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 } //校驗(yàn)手機(jī)號(hào)碼:必須以數(shù)字開(kāi)頭,除數(shù)字外,可含有“-” function isMobil(s) { var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true } //校驗(yàn)郵政編碼 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 } //校驗(yàn)搜索關(guān)鍵字 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á)式
^\\d+$ //非負(fù)整數(shù)(正整數(shù) + 0) ^[0-9]*[1-9][0-9]*$ //正整數(shù) ^((-\\d+)|(0+))$ //非正整數(shù)(負(fù)整數(shù) + 0) ^-[0-9]*[1-9][0-9]*$ //負(fù)整數(shù) ^-?\\d+$ //整數(shù) ^\\d+( //非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù) + 0) ^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$ //正浮點(diǎn)數(shù) ^((-\\d+( //非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù) + 0) ^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //負(fù)浮點(diǎn)數(shù) ^(-?\\d+)( //浮點(diǎn)數(shù) ^[A-Za-z]+$ //由26個(gè)英文字母組成的字符串 ^[A-Z]+$ //由26個(gè)英文字母的大寫組成的字符串 ^[a-z]+$ //由26個(gè)英文字母的小寫組成的字符串 ^[A-Za-z0-9]+$ //由數(shù)字和26個(gè)英文字母組成的字符串 ^\\w+$ //由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串 ^[\\w-]+( //email地址 ^[a-zA-z]+://( //url ^[A-Za-z0-9_]*$
匹配完整域名的正則表達(dá)式:
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
以上是“如何實(shí)現(xiàn)密碼驗(yàn)證的正則表達(dá)式”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!