最新密碼驗(yàn)證正則表達(dá)式
正則表達(dá)式驗(yàn)證密碼功能在項(xiàng)目中經(jīng)常被使用到,但是很多朋友還是不大會(huì)使用密碼正則表達(dá)式進(jìn)行驗(yàn)證,本文小編為大家整理了php密碼驗(yàn)證正則表達(dá)式、python密碼強(qiáng)度正則,當(dāng)然還有大家常用到的js正則表達(dá)式,希望大家喜歡。
剛開始復(fù)習(xí)一下,什么是正則表達(dá)式?
在編寫處理字符串的程序或網(wǎng)頁(yè)時(shí),經(jīng)常有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達(dá)式就是用于描述這些規(guī)則的工具。換句話說(shuō),正則表達(dá)式就是記錄文本規(guī)則的代碼。
php密碼驗(yàn)證正則表達(dá)式(8位長(zhǎng)度限制)
<?php
//密碼驗(yàn)證
$password = "zongzi_Abc_oo13a2";
$n = preg_match_all("/^[a-zA-Z\d_]{8,}$/",$password,$array);
//長(zhǎng)度是8或更多
var_dump($array);
?>
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è)以字母開頭、可帶數(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è)以字母開頭的字串
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)碼:可以“+”開頭,除數(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ù)字開頭,除數(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})+\.?
想系統(tǒng)學(xué)習(xí)的朋友可以繼續(xù)閱讀:正則表達(dá)式30分鐘入門教程,進(jìn)一步加深對(duì)正則表達(dá)式的認(rèn)識(shí)。
系列文章1:最新手機(jī)號(hào)碼、電話號(hào)碼正則表達(dá)式
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
正則表達(dá)式學(xué)習(xí)參考 正則入門學(xué)習(xí)資料
正則表達(dá)式(Regular Expression)是一種匹配模式,描述的是一串文本的特征2012-10-10
Hive中常用正則表達(dá)式的運(yùn)用小結(jié)
在實(shí)際的應(yīng)用中,通常需要在一些復(fù)雜的、沒(méi)有規(guī)律的字符串中提取數(shù)據(jù),這時(shí)候就需要用到正則表達(dá)式了,這次講一下hive的正則表達(dá)式,感興趣的朋友跟隨小編一起看看吧2022-08-08
JavaScript正則表達(dá)式驗(yàn)證代碼(推薦)
這篇文章主要介紹了JavaScript正則表達(dá)式驗(yàn)證的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-05-05
JavaScript正則表達(dá)式實(shí)現(xiàn)注冊(cè)信息校驗(yàn)功能
這篇文章主要介紹了JavaScript正則表達(dá)式實(shí)現(xiàn)注冊(cè)信息校驗(yàn)功能,在JS中默認(rèn)是模糊匹配,只要字符串包含了正則表達(dá)式的內(nèi)容就返回true,本文通過(guò)案例分析給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05

