最新密码验证正则表达式
正则表达式验证密码功能在项目中经常被使用到,但是很多朋友还是不大会使用密码正则表达式进行验证,本文小编为大家整理了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:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 中国十大毒性最强的毒蛇,银环蛇是中国第一毒(抗毒血清都不行)
下一篇: 正则表达式查找相似单词的方法