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


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

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

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

但是我需要比较是否有任何特殊字符,字符串长度应该是6。

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

如果由于某种原因需要在正则表达式中使用

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

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

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

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

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

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

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

或包含下划线字符:

'b'w{6}'b

这应该澄清:

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