检查字符串是否包含数字和字母

php
2022-08-30 12:20:34

我想检测字符串是否同时包含数字和字母。

例如:

  • 给定 ,它将被写入文本文件,因为它包含两者。PncC1KECj4pPVW
  • 给定 ,它不会,因为它只包含字母。qdEQ

有没有办法做到这一点?

我试图使用

$string = PREG_REPLACE("/[^0-9a-zA-Z]/i", '', $buffer);

但它没有奏效。

任何帮助将不胜感激。


答案 1

似乎最简单的方法就是在两个正则表达式中执行此操作。

if (preg_match('/[A-Za-z]/', $myString) && preg_match('/[0-9]/', $myString))
{
    echo 'Contains at least one letter and one number';
}

我想另一种方法是在下面。它说“一个字母,然后在某个时候是一个数字(反之亦然)”。但上面的那个更容易阅读IMO。

if (preg_match('/[A-Za-z].*[0-9]|[0-9].*[A-Za-z]/', $myString))
{
    echo 'Contains at least one letter and one number';
}

答案 2
if (preg_match('/[A-Za-z].*[0-9]|[0-9].*[A-Za-z]/', $myString))
{
    echo 'Secure enough';
}

答案已根据 https://stackoverflow.com/a/9336130/315550 更新,thnx到 https://stackoverflow.com/users/116286/jb


推荐