我有一个正则表达式,用于比较字符串是否包含字母和数字值。但我需要比较字符串是否有任何特殊字符,字符串的长度应为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 :(得分: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);
答案 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
}