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

Regular expression with alpha numeric and need to check length of the string

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

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

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

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

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

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

或包括下划线字符:

\b\w{6}\b

需要澄清的是:

But i need to compare if there are any special characters

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

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

您不需要正则表达式来检查长度为 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
http://php.net/manual/en/function.strlen.php

如果出于某种原因您需要在正则表达式中使用它。

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

演示:https://regex101.com/r/oR9bT4/1