检查字符串是否仅由字母数字字符组成的最佳方法是什么?

时间:2012-01-23 16:34:30

标签: php regex

  

可能重复:
  Php function to determine if a string consist of only alphanumerical characters?

我需要使用PHP和regexpresisons验证字符串

字符串可以是min。 4个字符,最多64个,只需要aplphanumeric

到目前为止我所得到的一切:

/^[A-Za-z0-9]{4,64}$/

3 个答案:

答案 0 :(得分:6)

你的正则表达式是正确的(假设你只想匹配ASCII字母数字),所以你可能错误地使用它。要检查字符串$subject是否与此正则表达式匹配,请使用

if (preg_match('/^[A-Z0-9]{4,64}$/i', $subject)) {
    # Successful match
} else {
    # Match attempt failed
}

请注意/i选项以使正则表达式不区分大小写。如果您还想匹配其他字母/数字,请使用/^[\p{L}\p{N}]{4,64}$/作为正则表达式。

答案 1 :(得分:1)

if (preg_match('/^[a-z0-9]{4,64}$/i', $subject)) {
    # Successful match
} else {
    # Match attempt failed
}

答案 2 :(得分:1)

尽管它确实会引起正则表达式的影响,但这个问题尽可能少。任何事情都会更复杂,例如:

$str = '....';
if (strlen($str) >= 4) && (strlen($str) <= 64) {
   if (function_to_detect_non_alphanum_chars($str)) {
      ... bad string ...
   }
}