java正则表达式验证密码_最新密码验证正则表达式

正则表达式验证密码功能在项目中经常被使用到,但是很多朋友还是不大会使用密码正则表达式进行验证,本文小编为大家整理了php密码验证正则表达式、python密码强度正则,当然还有大家常用到的js正则表达式,希望大家喜欢。

刚开始复习一下,什么是正则表达式?在编写处理字符串的程序或网页时,经常有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

php密码验证正则表达式(8位长度限制)

//密码验证

$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})+\.?

想系统学习的朋友可以继续阅读:正则表达式30分钟入门教程,进一步加深对正则表达式的认识。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327829.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2019最新 Java商城秒杀系统的设计与实战视频教程(SpringBoot版)

第一章 1-1课程整体介绍.mp4 1-2核心技术列表.mp4 1-3课程要求与收益.mp4 1-4系统的整体演示.mp4 https://www.jianshu.com/writer#/notebooks/42211254/notes/59340149 第二章 2-1微服务项目的搭建-SpringBoot搭建多模块项目一.mp4 2-2微服务项目的搭建-SpringBoot搭建多模块…

mybatis解决 1 字节的 UTF-8 序列的字节 1 无效

Mybatis执行代码报错&#xff1a; Cause: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效。 具体报错&#xff1a; java.lang.ExceptionInInitializerError at com.zhang.dao.UserMapperTest.test(UserMappe…

Java IO: 字符流的Buffered和Filter

转载自 Java IO: 字符流的Buffered和Filter作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com) 本章节将简要介绍缓冲与过滤相关的reader和writer&#xff0c;主要涉及BufferedReader、BufferedWriter、FilterReader、FilterWriter。 BufferedReader 原文链接 BufferedR…

TechEmpower 13轮测试中的ASP.NET Core性能测试

应用性能直接影响到托管服务的成本&#xff0c;因此公司在开发应用时需要格外注意应用所使用的Web框架&#xff0c;初创公司尤其如此。此外&#xff0c;糟糕的应用性能也会影响到用户体验&#xff0c;甚至会因此受到相关搜索引擎的降级处罚。在选择框架时&#xff0c;又有许多因…

hibernate注解的测试

注解用到的jar包&#xff1a;下载地址 /** * * 注解 * 步骤&#xff1a; * 1.导入jar包 * (1)hibernate-annotations.jar * (2)hibernate-commons-annotations.jar * (3)ejb3-persistence.jar * 2.使用注解配置持久化类级对象关…

Java IO: FileReader和FileWriter

转载自 Java IO: FileReader和FileWriter作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com) 本章节将简要介绍FileReader和FileWriter。与FileInputStream和FileOutputStream类似&#xff0c;FileReader与FileWriter用于处理文件内容。 FileReader 原文链接 FileReader能…

java sentence_Java Sentence類代碼示例

本文整理匯總了Java中aima.core.logic.propositional.parsing.ast.Sentence類的典型用法代碼示例。如果您正苦於以下問題&#xff1a;Java Sentence類的具體用法&#xff1f;Java Sentence怎麽用&#xff1f;Java Sentence使用的例子&#xff1f;那麽恭喜您, 這裏精選的類代碼示…

Redis在windows下的安装、启动、配置

Redis在windows下的安装、启动、配置 原创scorpio_meng 最后发布于2018-06-29 13:42:39 阅读数 9687 收藏 展开 1&#xff0c;下载地址&#xff1a;https://github.com/MicrosoftArchive/redis/releases 2&#xff0c;解压缩后在文件夹中创建两个文件夹dbcache、logs。 3&am…

在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证

Angular2是对Angular1的一次彻底的&#xff0c;破坏性的更新。 相对于Angular1.x&#xff0c;借用某果的广告语&#xff0c;唯一的不同&#xff0c;就是处处都不同。 首先&#xff0c;推荐的语言已经不再是Javascript&#xff0c;取而代之的TypeScript&#xff0c;(TypeScript …

xml vs db.properties

xml vs db.properties <property name"url" value"jdbc:mysql://localhost:3306/mybatis?useSSLtrue&amp;useUnicodetrue&amp;characterEncodingUTF-8"/>urljdbc:mysql://localhost:3306/mybatis? useSSLtrue&useUnicodetrue&cha…

require.ensure与require AMD的区别

转载自 webpack: require.ensure与require AMD的区别 webpack: require.ensure与require AMD的区别 简介 require-ensure和require-amd的区别&#xff1a; require-amd 说明: 同AMD规范的require函数&#xff0c;使用时传递一个模块数组和回调函数&#xff0c;模块都被下载下来…

python django 是啥_python的django做什么的

Django是一个开放源代码的Web应用框架&#xff0c;由Python写成。采用了MTV的框架模式&#xff0c;即模型M&#xff0c;视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的&#xff0c;即是CMS(内容管理系统)软件。并于2005年7月在BSD许可…

org.springframework.amqp.AmqpConnectException java.net.ConnectException的解决办法

一、报错信息 spring cloud集成rabbitmq时报错&#xff1a; org.springframework.amqp.AmqpTimeoutException: java.util.concurrent.TimeoutException at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptio…

hibernate注解实体类(Dept.java)

Dept.java 部门信息表的实体类详情 package cn.bdqn.hibernate_Criteria.entity;import java.util.HashSet; import java.util.Set;import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; i…

.NET Core 1.1 升级公告

2016年11月16日发布.NET Core 1.1 。 它包括对其他Linux发行版的支持&#xff0c;有很多更新&#xff0c;是当前的第一个版本。 将在下面描述所有这些变化。 它是“Go Live”&#xff0c;可用于生产工作负载。 您可以立即下载版本&#xff1a;: Windows x64Windows x86macOS …

Java IO: InputStreamReader和OutputStreamWriter

转载自 Java IO: InputStreamReader和OutputStreamWriter作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com) 本章节将简要介绍InputStreamReader和OutputStreamWriter。细心的读者可能会发现&#xff0c;在之前的文章中&#xff0c;IO中的类要么以Stream结尾&#xff0c…

java常用代码_Java 中常用代码 (欢迎补充)

//------------------------------------------------------------------------------------------------------生成四位随即验证码String str "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";StringBuilder s new StringBuilder();int len 4…

Intellij IDEA 重置所有工具栏 Intellij IDEA 中的 Debug 控制台输出窗口不见了的解决办法

Intellij IDEA 中的 Debug 控制台输出窗口不见了的解决办法 在 Debug 工具窗口&#xff0c;如图点击左侧重置布局图标&#xff0c;你的console窗口就还原了。

基于 .Net Core 的组件 Nuget 包制作 amp; 发布

微软的 ASP.Net Core 强化了 Nuget 的使用&#xff0c;所有的 .Net Core 组件均有 Nuget 管理&#xff0c;所以有必要探讨一下 .Net Core 组件制作 Nuget 包和发布。 之前 .Net Framework 程序集打包 Nuget 有以下方法&#xff1a; 1. 使用命令 nuget pack 详见博客园的一篇博…