如何检查php中的字符串是否至少有一个字母,数字和特殊字符

2022-08-30 18:41:23

我目前正在编写一个小脚本,用于检查每个字符串的内容。

我想知道REGEX是什么来确保字符串具有字母(上部或下部),数字和特殊字符?

以下是我目前所知道的(并不多):

if(preg_match('/^[a-zA-Z0-9]+$/i', $string)):

帮助会很棒!

谢谢!


答案 1

最简单(也可能是最好的)方法是使用以下命令进行三个单独的检查:preg_match

$containsLetter  = preg_match('/[a-zA-Z]/',    $string);
$containsDigit   = preg_match('/\d/',          $string);
$containsSpecial = preg_match('/[^a-zA-Z\d]/', $string);

// $containsAll = $containsLetter && $containsDigit && $containsSpecial

答案 2

您可以使用正前置来创建单个正则表达式:

$strongPassword = preg_match('/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$%^&]).*$/');
//                                              special characters  ^^^^

推荐