Cake\Localized\Validation\TwValidation::ubn PHP Method

ubn() public static method

Checks unified business number for Taiwan.
public static ubn ( string $check ) : boolean
$check string The value to check.
return boolean Success.
    public static function ubn($check)
    {
        if (!preg_match('/^[0-9]{8}$/', $check)) {
            return false;
        }
        $tbNum = [1, 2, 1, 2, 1, 2, 4, 1];
        $intSum = 0;
        for ($i = 0; $i < 8; $i++) {
            $intMultiply = $check[$i] * $tbNum[$i];
            $intAddition = floor($intMultiply / 10) + $intMultiply % 10;
            $intSum += $intAddition;
        }
        return $intSum % 10 === 0 || $intSum % 10 === 9 && $check[6] === 7;
    }

Usage Example

Beispiel #1
0
 /**
  * test the ubn method of TwValidation
  *
  * @return void
  */
 public function testUbn()
 {
     $this->assertTrue(TwValidation::ubn('30185757'));
     $this->assertTrue(TwValidation::ubn('28816624'));
     $this->assertTrue(TwValidation::ubn('29030783'));
     $this->assertTrue(TwValidation::ubn('70385540'));
     $this->assertTrue(TwValidation::ubn('70402724'));
     $this->assertTrue(TwValidation::ubn('70417228'));
     $this->assertTrue(TwValidation::ubn('70425493'));
     $this->assertTrue(TwValidation::ubn('70428512'));
     $this->assertTrue(TwValidation::ubn('80284937'));
     $this->assertTrue(TwValidation::ubn('80288005'));
     $this->assertTrue(TwValidation::ubn('80309347'));
     $this->assertTrue(TwValidation::ubn('84824416'));
     $this->assertTrue(TwValidation::ubn('84877118'));
     $this->assertTrue(TwValidation::ubn('29048329'));
     $this->assertTrue(TwValidation::ubn('29059535'));
     $this->assertTrue(TwValidation::ubn('70433803'));
     $this->assertTrue(TwValidation::ubn('70445786'));
     $this->assertTrue(TwValidation::ubn('70460815'));
 }