Blame view

bower_components/jquery-validation/src/additional/creditcard.js 918 Bytes
4c373a79   Administrator   ашкые
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  // http://jqueryvalidation.org/creditcard-method/
  // based on http://en.wikipedia.org/wiki/Luhn_algorithm
  $.validator.addMethod( "creditcard", function( value, element ) {
  	if ( this.optional( element ) ) {
  		return "dependency-mismatch";
  	}
  
  	// Accept only spaces, digits and dashes
  	if ( /[^0-9 \-]+/.test( value ) ) {
  		return false;
  	}
  
  	var nCheck = 0,
  		nDigit = 0,
  		bEven = false,
  		n, cDigit;
  
  	value = value.replace( /\D/g, "" );
  
  	// Basing min and max length on
  	// http://developer.ean.com/general_info/Valid_Credit_Card_Types
  	if ( value.length < 13 || value.length > 19 ) {
  		return false;
  	}
  
  	for ( n = value.length - 1; n >= 0; n-- ) {
  		cDigit = value.charAt( n );
  		nDigit = parseInt( cDigit, 10 );
  		if ( bEven ) {
  			if ( ( nDigit *= 2 ) > 9 ) {
  				nDigit -= 9;
  			}
  		}
  
  		nCheck += nDigit;
  		bEven = !bEven;
  	}
  
  	return ( nCheck % 10 ) === 0;
  }, "Please enter a valid credit card number." );