2
我在使preg_match
允許7-10位數字。數字和字母表的preg匹配
preg_match('/[0-9]{7,10}/', $studentID
此外另一個preg_match
代碼,允許最多20個字母與空間和連字符。
preg_match ('/^[a-zA-Z -]{,20}+$/i', $familyname
這兩個都不起作用。
我在使preg_match
允許7-10位數字。數字和字母表的preg匹配
preg_match('/[0-9]{7,10}/', $studentID
此外另一個preg_match
代碼,允許最多20個字母與空間和連字符。
preg_match ('/^[a-zA-Z -]{,20}+$/i', $familyname
這兩個都不起作用。
您需要錨添加到第一個正則表達式,你用他們的第二圖案以同樣的方式,你必須定義爲限制量詞下界在第二圖案(比如,0至20):
$studentID = "1234567";
if (preg_match('/^[0-9]{7,10}$/', $studentID)) {
echo "$studentID matched!\n";
}
$familyname = "Pupkin";
if (preg_match ('/^[A-Z -]{0,20}$/i', $familyname)) {
echo "$familyname matched!";
}
注意{0,20}
和佔有慾{0,20}+
版本將工作一樣,因爲這裏的格局並沒有隨着其他消費子模式(所以,沒有必要禁止回溯了量化的子模式)。
此外,'/^[A-Z -]{0,20}$/i'
是一個非常通用的姓氏子模式,你可能想要進一步精確。例如,要禁止所有空格或---------
的字符串,可以使用'/^(?=.{0,20}$)[A-Z]+(?:[ -][A-Z]+)*$/i'
。
您的陳述都沒有被正確關閉w /');' –
'a-zA-Z'與'/ i'是多餘的。 '/ i'已經使正則表達式不區分大小寫,所以提供大小寫版本是沒有意義的。和'{,20} +'也沒有多大意義。 –