使用字母数字的正则表达式,需要检查字符串的长度

时间:2015-07-21 14:23:05

标签: php regex alphanumeric

我有一个正则表达式,用于比较字符串是否包含字母和数字值。但我需要比较字符串是否有任何特殊字符,字符串的长度应为6。 我当前的正则表达式是

$val = 'A457718';
preg_match('/^[A-Z]|[0-9A-Z]*([0-9][A-Z]|[A-Z][0-9])[0-9A-Z]*$/i', $val)

但我需要比较是否有任何特殊字符,字符串长度应为6.任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:1)

您不需要正则表达式来检查长度为6个字符且仅为数字的字符串。

$val = 'A457718';
if (is_numeric($val) && strlen($val) == 6) {
     echo 'true';
} else {
     echo 'false';
}

演示:http://sandbox.onlinephpfunctions.com/code/25c426d1bbbfce4a96c8c1ba74cc4a84b66c2435 功能:
http://php.net/manual/en/function.is-numeric.php {
{3}}

如果出于某种原因,你需要正则表达式。

preg_match('~^\d{6}$~', $val);

演示:http://php.net/manual/en/function.strlen.php

答案 1 :(得分:0)

表示长度,放在末尾{0,6} ..这会将字符串限制为0到6个字符

答案 2 :(得分:0)

这将匹配任何6个长度的字母数字字符串:

\b[a-zA-Z0-9]{6}\b

或包括下划线字符:

\b\w{6}\b

这应该澄清:

  

但我需要比较是否有任何特殊字符

答案 3 :(得分:0)

模式/^[a-zA-Z0-9]{6}$/将匹配六个字母数字字符。

if(preg_match('/^[a-zA-Z0-9]{6}$/', 'A45BBB')){
  // Is valid
}