preg_match_all("/[^A-Za-z0-9]/",$new_password,$out);
以上只检查第一个字符,如何检查是否全部为字母数字?
答案 0 :(得分:18)
使用内置函数可能是个更好的主意:ctype_alnum
答案 1 :(得分:6)
preg_match("/^[A-Za-z0-9]*$/", $new_password);
如果所有字符都是字母数字(但要注意非英文字符),则会给true
。 ^
标记字符串的开头,^ $ ^标记结束。如果字符串为空,它还会给出true
。如果您要求字符串不为空,则可以使用+
量词而不是*
:
preg_match("/^[A-Za-z0-9]+$/", $new_password);
答案 2 :(得分:0)
老问题,但这是我的解决方案:
<?php
public function alphanum($string){
if(function_exists('ctype_alnum')){
$return = ctype_alnum($string);
}else{
$return = preg_match('/^[a-z0-9]+$/i', $string) > 0;
}
return $return;
}
?>