Cake\Localized\Validation\EsValidation::nif PHP Method

nif() public static method

Only checks the NIF type personId.
public static nif ( string $check ) : boolean
$check string The value to check.
return boolean Success
    public static function nif($check)
    {
        if (!preg_match('/^[KLM]{1}([0-9]+)([A-Z]{1})$/', $check, $matches)) {
            return false;
        }
        $sum = $check[2] + $check[4] + $check[6];
        for ($i = 1; $i < 8; $i += 2) {
            $tmp = (string) (2 * $check[$i]);
            $sum += $tmp[0] + (strlen($tmp) == 2 ? $tmp[1] : 0);
        }
        $num = 10 - substr($sum, -1);
        return $check[strlen($check) - 1] === chr($num + 64);
    }

Usage Example

コード例 #1
0
 /**
  * Test the nif validation.
  *
  * @return void
  */
 public function testNif()
 {
     $this->assertTrue(EsValidation::nif('K1254868A'));
     $this->assertTrue(EsValidation::nif('K3548762H'));
     $this->assertTrue(EsValidation::nif('L5876542A'));
     $this->assertFalse(EsValidation::nif('X5876542A'));
     $this->assertFalse(EsValidation::nif('Z2548769Y'));
     $this->assertFalse(EsValidation::nif('32050031Z'));
 }