public static function dni($check) { if (!preg_match('/^([0-9]+)([A-Z]{1})$/', $check, $matches)) { return false; } array_shift($matches); list($num, $letter) = $matches; return $letter === static::$CODES[$num % 23]; }
/** * Test the dni validation. * * @return void */ public function testDni() { $this->assertTrue(EsValidation::dni('32050031Z')); $this->assertTrue(EsValidation::dni('03654968S')); $this->assertTrue(EsValidation::dni('00000014Z')); $this->assertTrue(EsValidation::dni('14Z')); $this->assertFalse(EsValidation::dni('145')); $this->assertFalse(EsValidation::dni('21856874H')); }