在JS中验证BIN号

时间:2017-06-30 13:05:38

标签: javascript angularjs

一旦用户向我提供了他们的信用卡类型和他们的信用卡号码,如果号码和卡片类型不符合他们的BIN,我希望显示错误的吐司信息:{{3 }}

选择"美国运通"下面的代码会生成吐司信息。并输入一个数字,无论该数字是以34或37还是任何其他数字开头。

switch ($scope.newPayment.card_type) {
  case "American Express":
    $scope.digits = $scope.newPayment.card_number.toString().substr(0, 2).valueOf();
    if ($scope.digits != 34 || $scope.digits != 37) {

      toastr.error('Card number does not match card type');
      return;
    }
    break;
  case "Visa":
    $scope.digits = $scope.newPayment.card_number.toString().substr(0, 1).valueOf();
    if ($scope.digits != 4) {

      toastr.error('Card number does not match card type');
      return;
    }
    break;
  case "Mastercard":
    $scope.digits = $scope.newPayment.card_number.toString().substr(0, 2).valueOf();
    if (51 > $scope.digits > 55) {

      $scope.digits = $scope.newPayment.card_number.toString().substr(0, 4).valueOf();
      if (2221 > $scope.digits > 2720) {

        toastr.error('Card number does not match card type');
        return;
      }
    }
    break;
  case "Discover":
    $scope.digits = $scope.newPayment.card_number.toString().substr(0, 4).valueOf();
    if ($scope.digits != 6011) {

      $scope.digits = $scope.newPayment.card_number.toString().substr(0, 2).valueOf();
      if ($scope.digits != 65) {

        $scope.digits = $scope.newPayment.card_number.toString().substr(0, 3).valueOf();
        if (644 > $scope.digits > 649) {

          $scope.digits = $scope.newPayment.card_number.toString().substr(0, 6).valueOf();
          if (622126 > $scope.digits > 622925) {

            toastr.error('Card number does not match card type');
            return;
          }
        }
      }
    }
    break;
  default:
}

1 个答案:

答案 0 :(得分:1)

我的测试用例是在一行代码中。

if ($scope.digits != 34  || $scope.digits != 37 ){

将永远为真,因为数字不能同时为34和37。

我更新了这个并且很高兴。