PHP检查一个字母和一个数字

时间:2011-09-01 00:27:17

标签: php regex string

如何在PHP中检查字符串是否至少是一个字母和一个数字?可以有特殊字符,但基本上需要有一个字母和一个数字。

示例:

$string = 'abcd'   //Return false
$string = 'a3bq'   //Return true
$string = 'abc#'   //Return false
$string = 'a4#e'   //Return true

感谢。

4 个答案:

答案 0 :(得分:6)

试试这个

if (preg_match('/[A-Za-z]/', $string) & preg_match('/\d/', $string) == 1) {
    // string contains at least one letter and one number
}

答案 1 :(得分:2)

preg_match('/\pL/', $string) && preg_match('/\p{Nd}/', $string)

preg_match('/\pL.*\p{Nd}|\p{Nd}.*\pL/', $string)

preg_match('/^(?=.*\pL)(?=.*\p{Nd})/', $string)

preg_match('/^(?=.*\pL).*\p{Nd}/', $string)

我不确定\d是否等同于[0-9],或者它是否与PHP中的十进制数字匹配,所以我没有使用它。使用匹配正确事物的\d[0-9]\p{Nd}中的任何一个。

答案 2 :(得分:0)

您正在寻找的模式是^.*(?=.*\d)(?=.*[a-zA-Z]).*$

使用中:

if( preg_match( "/.*(?=.*\d)(?=.*[a-zA-Z]).*/", $string ) )
     echo( "Valid" );
else
     echo( "Invalid." );

答案 3 :(得分:-1)

如果只有拉丁字符和数字,这应该有效:

if (preg_match('/[a-z0-9]+/i', $search_string)) { ... has at least one a-zA-Z0-9 ... }