最新密码验证正则表达式
正则表达式验证密码功能在项目中经常被使用到,但是很多朋友还是不大会使用密码正则表达式进行验证,本文小编为大家整理了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
importre
defchecklen(pwd):
returnlen(pwd)>=8
defcheckContainUpper(pwd):
pattern=re.compile('[A-Z]+')
match=pattern.findall(pwd)
ifmatch:
returnTrue
else:
returnFalse
defcheckContainNum(pwd):
pattern=re.compile('[0-9]+')
match=pattern.findall(pwd)
ifmatch:
returnTrue
else:
returnFalse
defcheckContainLower(pwd):
pattern=re.compile('[a-z]+')
match=pattern.findall(pwd)
ifmatch:
returnTrue
else:
returnFalse
defcheckSymbol(pwd):
pattern=re.compile('([^a-z0-9A-Z])+')
match=pattern.findall(pwd)
ifmatch:
returnTrue
else:
returnFalse
defcheckPassword(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(lenOKandupperOKandlowerOKandnumOKandsymbolOK)
defmain():
ifcheckPassword('Helloworld#123'):
print('检测通过')
else:
print('检测未通过')
if__name__=='__main__':
main()
java密码验证正则表达式
/**
*@ClassName:RexTest
*@Description:TODO
*@authorBMR
*@date2016年3月28日上午11:09:17
*/
publicclassRexTest{
/**
*正则表达式验证密码
*@paraminput
*@return
*/
publicstaticbooleanrexCheckPassword(Stringinput){
//6-20位,字母、数字、字符
//Stringreg="^([A-Z]|[a-z]|[0-9]|[`-=[];,./~!@#$%^*()_+}{:?]){6,20}$";
StringregStr="^([A-Z]|[a-z]|[0-9]|[`~!@#$%^&*()+=|{}':;',\\\\[\\\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“'。,、?]){6,20}$";
returninput.matches(regStr);
}
publicstaticvoidmain(String[]args){
System.out.println("rexCheckPasswordis:"+rexCheckPassword("14`~!@#$%^&*(\\)+=|{}"));
}
输出结果:
rexCheckPasswordis: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]+|[!@#$%^&*]+)$
//校验是否全由数字组成
functionisDigit(s)
{
varpatrn=/^[0-9]{1,20}$/;
if(!patrn.exec(s))returnfalse
returntrue
}
//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串
functionisRegisterUserName(s)
{
varpatrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
if(!patrn.exec(s))returnfalse
returntrue
}
functionisRegisterUserName(s)
{
varpatrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
if(!patrn.exec(s))returnfalse
returntrue
}
//校验用户姓名:只能输入1-30个以字母开头的字串
Javascript代码
functionisTrueName(s)
{
varpatrn=/^[a-zA-Z]{1,30}$/;
if(!patrn.exec(s))returnfalse
returntrue
}
}}
//校验密码:只能输入6-20个字母、数字、下划线
functionisPasswd(s)
{
varpatrn=/^(\w){6,20}$/;
if(!patrn.exec(s))returnfalse
returntrue
}
//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”
functionisTel(s)
{
//varpatrn=/^[+]{0,1}(\d){1,3}[]?([-]?(\d){1,12})+$/;
varpatrn=/^[+]{0,1}(\d){1,3}[]?([-]?((\d)|[]){1,12})+$/;
if(!patrn.exec(s))returnfalse
returntrue
}
//校验手机号码:必须以数字开头,除数字外,可含有“-”
functionisMobil(s)
{
varpatrn=/^[+]{0,1}(\d){1,3}[]?([-]?((\d)|[]){1,12})+$/;
if(!patrn.exec(s))returnfalse
returntrue
}
//校验邮政编码
functionisPostalCode(s)
{
//varpatrn=/^[a-zA-Z0-9]{3,12}$/;
varpatrn=/^[a-zA-Z0-9]{3,12}$/;
if(!patrn.exec(s))returnfalse
returntrue
}
//校验搜索关键字
functionisSearch(s)
{
varpatrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\]
[\]\{\}:;'\,.<>?]{0,19}$/;
if(!patrn.exec(s))returnfalse
returntrue
}
functionisIP(s)//byzergling
{
varpatrn=/^[0-9.]{1,20}$/;
if(!patrn.exec(s))returnfalse
returntrue
}
正则表达式
^\\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})+\.?
想系统学习的朋友可以继续阅读:正则表达式30分钟入门教程,进一步加深对正则表达式的认识。
系列文章1:最新手机号码、电话号码正则表达式
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。