Tarihi doğrulamak isterseniz, bunu yalnızca düzenli ifadelerle yapmakta zorlanacaksınız. Ancak, neyse ki, PHP'nin bir checkdate işlevi vardır. Gününü, ayını ve yılını ayıklamak zorundasınız, ki bu oldukça kolay olmalı ama normal ifadenizi biraz değiştirecek. Onları almak için her bir öğenin (gün, ay, yıl) etrafına parantez koymayı unutmayın. böylece,
/^[A-Z]([0-9]{2})([0-9]{2})([0-9]{4})[0-9]{6}[A-Z]$/
Sonra tarihini kontrol: Ben yanılmıyorsam
, senin regex böyle bir şey olmalı
preg_match('/^[A-Z]([0-9]{2})([0-9]{2})([0-9]{2})[0-9]{6}[A-Z]$/', 'D160289784495A', $match);
var_dump(checkdate($match[2], $match[1], $match[3]));
geçerli bazı NIC örneklerini verin. –
, [...] {1} 'in gereksiz olduğunu not eder. Bir karakter sınıfı ('[]') her zaman tek bir karakterle eşleşir. –
Örnek: D160289784495A – Student