php - 这个正则表达式是什么意思 /^.*(?=.{4,5})(?=.*[az])(?=.*[AZ])(?=.*[0-9])。 *$/
问题描述
有人可以详细说明以下正则表达式:
if($pass == $re_pass) {
//password validation
$pattern_up = "/^.*(?=.{4,56})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).*$/";
if(!preg_match($pattern_up, $pass)) {
$errPass = "Must be at lest 4 character long, 1 upper case, 1 lower case letter and 1 number exist";
}
}
我想要实现的是检查输入的密码是否在 4 和 56 之间。我已经在代码中指定了它。但是,当我尝试时,它可以接受超过该范围。
我的问题是如何指定上限,我不想超过 56 个字符。如果你能更详细地阐述它,那么我可以更了解它。此代码不是我制作的。
谢谢,
我正在尝试在 php 中做注册页面
if($pass == $re_pass) {
//password validation
$pattern_up = "/^.*(?=.{4,56})(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).*$/";
if(!preg_match($pattern_up, $pass)) {
$errPass = "Must be at lest 4 character long, 1 upper case, 1 lower case letter and 1 number exist";
}
}
解决方案
只需使用锚点:^.{4,56}$
^
- 匹配字符串的开头
$
- 匹配字符串的结尾
.{4,56}
- 匹配任何字符至少 4 次,最多 56 次
您可以在积极的前瞻中使用它:(?=^.{4,56}$)
推荐阅读
- pandas - 熊猫在数据框列表中获得每(行,列)的平均值
- php - 如何在jquery中解密值(k,v)
- python - 如何更改 seaborn 散点图的绘图大小?
- javascript - 创建一个将所有数字推送到数组的范围函数
- ethereum - 如何获取以太坊合约和账户信息(使用geth和web3.py)
- javascript - 安装 Angular cli 并设置路径变量后,Angular 命令不起作用
- google-cloud-firestore - 检索 Angular 11 中的子集合数据
- python - 如何在 3D 球体上正确绘制 2D 数组
- input - 内置模拟输入PLC
- powershell - Powershell从“删除项目”获取日志输出