我有一個正則表達式,用於比較字符串是否具有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.任何幫助將不勝感激。
我有一個正則表達式,用於比較字符串是否具有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.is-numeric.php
http://php.net/manual/en/function.strlen.php
如果由於某種原因,你需要它的正則表達式。
preg_match('~^\d{6}$~', $val);
的長度,把在結束{0,6}
..這將限制字符串是從0到6個字符
是的,我在end.preg_match('/^[AZ] | [0-9A-Z] *([0-9] [AZ] | [AZ] [0-9])給出了{0,6} [0-9A-Z] {0,6} * $/i',$ val)。但我的錯誤是這樣的:preg_match():編譯失敗:沒有重複的偏移量52 – user3408779
這將匹配任何6-長度的字母數字字符串:
\b[a-zA-Z0-9]{6}\b
或包括強調字符:
\b\w{6}\b
這應當加以澄清:
但我需要,如果有任何特殊字符
不需要',6','{6}'表示6個字符。 '\ w'也匹配'_',所以它不只是字母數字。 – chris85
感謝您的注意,我已經更新了答案。 –
模式/^[a-zA-Z0-9]{6}$/
將匹配六個字符是字母數字比較。
if(preg_match('/^[a-zA-Z0-9]{6}$/', 'A45BBB')){
// Is valid
}
提供一些樣品valie和無效輸入。 – anubhava
什麼是「特殊字符」?你只想要字符串長度爲6個字符和字母數字?樣本輸入和預期結果將很有用。 – chris85
除字母數字以外的任何字符 – user3408779