Esempio n. 1
0
 private function validateCardNumber($card_number)
 {
     if (!$card_number) {
         return false;
     }
     //check wrong symbol in number
     if (!preg_match('/^[\\s\\d]*$/', $card_number)) {
         return false;
     }
     //delete spaces
     $card_number = preg_replace('/\\D/', '', $card_number);
     //not empty
     if ($card_number == '') {
         return false;
     }
     //check length
     if (strlen($card_number) > 20 || strlen($card_number) < 13) {
         return false;
     }
     //luhn algoritm
     $luhn = new Luhn();
     if (!$luhn->check($card_number)) {
         return false;
     }
     return true;
 }
Esempio n. 2
0
 /**
  * Tests if Luhn validator is able to detect valid Luhn sequences
  */
 public function testIsValid()
 {
     // Arrange
     $luhnValidator = new Luhn();
     // Arrange
     // Assert
     foreach ($this->validLuhns as $number) {
         $this->assertTrue($luhnValidator->isValid($number));
     }
     foreach ($this->invalidLuhns as $number) {
         $this->assertFalse($luhnValidator->isValid($number));
     }
 }
Esempio n. 3
0
 private static function validateIsbn13($isbn13)
 {
     if (strlen($isbn13) != 13 || !ctype_digit($isbn13)) {
         return false;
     }
     return Luhn::check($isbn13, 13, false);
 }
Esempio n. 4
0
 /**
  * @param mixed $iswc
  *
  * @return bool
  */
 public static function validate($iswc)
 {
     if (!(bool) preg_match('/^\\s*T[\\-.]?(\\d)(\\d)(\\d)[\\-.]?(\\d)(\\d)(\\d)[\\-.]?(\\d)(\\d)(\\d)[\\-.]?(\\d)\\s*$/i', $iswc)) {
         return false;
     }
     $hyphens = ['‐', '-', '.'];
     $iswc = parent::unDecorate($iswc, $hyphens);
     $sum = 1;
     for ($i = 1; $i <= 9; ++$i) {
         $sum = $sum + $i * (int) $iswc[$i];
     }
     $rem = $sum % 10;
     if ($rem !== 0) {
         $rem = 10 - $rem;
     }
     return (int) $iswc[10] === $rem;
 }
Esempio n. 5
0
 /**
  * @dataProvider isCheckDigitValidProvider
  */
 public function testIsCheckDigitValid($testNumber, $expectedResult)
 {
     $algorithm = new Luhn();
     $this->assertEquals($expectedResult, $algorithm->isCheckDigitValid($testNumber));
 }
Esempio n. 6
0
 /**
  * Calculates the checksum of a swedish social security number (personnummer)
  *
  * Using the Luhn algorithm
  */
 public static function calcLunh($ssn)
 {
     // remove first 2 digits of YYYY
     if (strlen($ssn) == 12) {
         $ssn = substr($ssn, 2);
     }
     if (strlen($ssn) != 10) {
         throw new \Exception('XXX should not happen');
     }
     $sum = Luhn::Calculate(substr($ssn, 0, -1));
     return substr($ssn, -1, 1) == $sum;
 }
Esempio n. 7
0
<?php

/**
 * Created by PhpStorm.
 * User: bamdad
 * Date: 2/3/2016
 * Time: 9:02 PM
 */
include_once './autoload.php';
$luhn = new Luhn();
$luhn->validate(79927398713);
echo $luhn->luhanize(79927398714);
Esempio n. 8
0
 /**
  * {@inheritdoc}
  */
 public static function unDecorate($gtin, $hyphens = self::HYPHENS)
 {
     return parent::unDecorate($gtin, $hyphens);
 }