Create preg_match for password validation allowing (!@#$%)(为密码验证创建 preg_match 允许 (!@#$%))
问题描述
我想创建一个 preg_match
函数来验证我的密码,但我不确定如何编写它以允许使用以下特殊字符:!@#$%
.
I would like to create a preg_match
function to validate my passowrds, but I'm not sure how to write it to allow the following special characters to be used: !@#$%
.
if(!preg_match(?????)$/', $password))
这是我想在正则表达式中使用的密码规则:
Here are my password rules that I want to work into the regex:
- 可能包含字母和数字
- 必须至少包含 1 个数字和 1 个字母
- 可能包含以下任何字符:
!@#$%
- 必须为 8-12 个字符
感谢您提供的任何帮助.
Thank you for any help you can offer.
推荐答案
我觉得应该是这样的:
if(!preg_match('/^(?=.*d)(?=.*[A-Za-z])[0-9A-Za-z!@#$%]{8,12}$/', $password)) {
echo 'the password does not meet the requirements!';
}
开始之间 -> ^
并结束 -> $
字符串中必须至少有一个数字 -> (?=.*d)
和至少一个字母 -> (?=.*[A-Za-z])
它必须是数字、字母或以下之一:!@#$% -> [0-9A-Za-z!@#$%]
并且必须有 8-12 个字符 -> {8,12}
正如 user557846 对您的问题的评论,我还建议您允许更多字符,我通常(如果我使用最大值)至少需要 50 个 :)
As user557846 commented to your question, I would also suggest you to allow more characters, I usually (if i use a maximum) take at least 50 :)
顺便说一句,您可能想看看 这个正则表达式教程
btw, you might want to take a look at this regex tutorial
这篇关于为密码验证创建 preg_match 允许 (!@#$%)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:为密码验证创建 preg_match 允许 (!@#$%)
基础教程推荐
- 超薄框架REST服务两次获得输出 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01