我有一个正则表达式来比较字符串是否同时具有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
这应该澄清:
但是我需要比较是否有特殊字符