사용자가 제출하기를 누르기 전에 신용 카드의 수표 유효성을 검사하는 라이브러리 또는 JavaScript 스 니펫이있는 사람이 있습니까?신용 카드의 클라이언트 측 유효성 확인
답변
jQuery Validation Plugin에는 신용 카드 번호 확인을위한 method이 있습니다.
이그들 중 대부분은 Luhn algorithm를 사용
는 다른 특정 스크립트가 있습니다.
jQuery 플러그인을 아직 사용하고 있지 않은 경우이 기능을 사용할 수 있습니다. Luhn 알고리즘을 기반으로하며 공백이나 대시를 허용하므로 필요한 대부분의 데이터 입력 사례에 사용할 수 있습니다.
http://af-design.com/blog/2010/08/18/validating-credit-card-numbers/
은 아마 영업 이익도 더 이상이 스레드를 수행하지 않지만이 다른 사람에게 도움이 될 수 있습니다
http://jquerycreditcardvalidator.com
그것은 카드의 종류를 확인, 모드에 대한 길이와 검사의 유효성을 검사합니다 10 Luhn 알고리즘.
당신은 Luhn algorithm으로 16 자리 카드 번호를 확인하기 위해이 코드를 사용할 수 있습니다
function validateCardNumber(number) {
var regex = new RegExp("^[0-9]{16}$");
if (!regex.test(number))
return false;
return luhnCheck(number);
}
function luhnCheck(val) {
var sum = 0;
for (var i = 0; i < val.length; i++) {
var intVal = parseInt(val.substr(i, 1));
if (i % 2 == 0) {
intVal *= 2;
if (intVal > 9) {
intVal = 1 + (intVal % 10);
}
}
sum += intVal;
}
return (sum % 10) == 0;
}
Luhn formula 신용 카드 유효성 검사에서 가장 인기있는 알고리즘이다. 그리고 도서관을 찾고있는 단어 algorithm
을 두려워하지 마십시오. 엄청나게 이해하기 쉽습니다. 위키 설명으로부터,이 알고리즘은 3 단계로 분할 될 수있다 : 체크 디지트, 우 이동은 가장 오른쪽 자리에서
- 초마다 숫자의 두 배의 값; 이 이중 연산의 곱이 9보다 큰 경우 (예 : 8x2 = 16), 제품의 숫자 (예 : 16 : 1 + 6 = 7, 18 : 1 + 8 = 9)를 합치십시오.
- 모든 숫자의 합계를 취하십시오.
- 모듈로 10의 합계가 0 인 경우 (합계가 0으로 끝나는 경우), 수는 Luhn 수식에 따라 유효합니다. 그렇지 않으면 이 유효하지 않습니다.
여기에 제 초안이 있습니다. (또한 Luhn formula라고도 함)
function luhn(anum){
anum = anum+'';
var sum = 0,
max = anum.length - 1;
//From the rightmost digit, which is the check digit, moving left
for(var j=max;j>=0;j--){
var digit = parseInt(anum[j]);
//Take the sum of all the digits
if((max - j) & 1){
//double the value of every second digit
var add = digit * 2;
//if the product of this doubling operation is greater than 9 ,
//then sum the digits of the products
sum += add < 10 ? add : 1 + add % 10;
}else{
sum += digit;
}
}
//If the total modulo 10 is equal to 0 (if the total ends in zero)
//then the number is valid according to the Luhn formula;else it is not valid.
return sum % 10 === 0;
}
luhn(79927398713) -> true
Luhn 알고리즘은 식별 번호 (예를 들면 신용 카드 번호, IMEI)의 다양성을 확인하는 것이 유용하다.
다른 사람들이 이미 노출했기 때문에 설명을 생략하지만 가장 빠른 자바 스크립트 구현을 보려면 here을 참조하십시오.
소스 연결function luhn(array) {
return function (number) {
let len = number ? number.length : 0,
bit = 1,
sum = 0;
while (len--) {
sum += !(bit ^= 1) ? parseInt(number[len], 10) : array[number[len]];
}
return sum % 10 === 0 && sum > 0;
};
}([0, 2, 4, 6, 8, 1, 3, 5, 7, 9]);
주 (또한 자바 스크립트 2,015라고도 함) ES6 언어입니다 ... 간단히 말해, 그러나에 transpiled되어 ES5 (index.js 참조)과는 완전히 단위 테스트를 거쳤습니다.
또한 브라우저 및/또는 node.js에서 사용할 수 있습니다.
벤치 마크 및 기타 구현은 높은 성능을 확인하기 위해 jsperf에 있습니다.
이제 링크 된 코드 (예 : repository)를 사용하기 만하면됩니다.
그렇지 않으면 ... bower를 통해 설치
bower install luhn-alg
또는 npm를 통해
...npm install luhn-alg
면책 조항 : 나는 luhn-alg
패키지의 저자입니다.
- 1. Paypal 신용 카드 유효성 확인
- 2. Grails 클라이언트 측 유효성 검사
- 3. 클라이언트 측 유효성 보안 문제
- 4. MVC2 Jquery 모달 대화 상자 내에서 클라이언트 측 유효성 확인
- 5. 그룹을 통한 클라이언트 측 유효성 검사
- 6. Magento 서버 측 형식 유효성 확인
- 7. 라디오 버튼 서버 측 유효성 확인
- 8. ASP.NET MVC 클라이언트 측 유효성 검사
- 9. MVC 3 주석이없는 클라이언트 측 유효성 검사?
- 10. 클라이언트 측 유효성 검사 및 STI
- 11. asp.net mvc 클라이언트 측 유효성 검사
- 12. xVal 클라이언트 측 유효성 검사가 작동하지 않습니다.
- 13. 클라이언트 측 유효성 검사 후 RegisterOnSubmitStatement
- 14. ASP.NET MVC ValidationSummary 클라이언트 측 유효성 검사
- 15. $ .getJSON 클라이언트 측 사용자 지정 유효성 검사
- 16. ASP.NET MVC의 선택적 클라이언트 측 유효성 검사
- 17. struts 유효성 검사기 클라이언트 측, 메세지없이 alertbox
- 18. MVC2 ValidationSummary 및 클라이언트 측 유효성 검사
- 19. 레일 3의 클라이언트 측 유효성 검사?
- 20. 페이지 요청 전용 클라이언트 측 유효성 검사
- 21. Telerik의 MVC Grid에서 클라이언트 측 유효성 검사
- 22. dojo dijit 클라이언트 측 유효성 검사 onchange
- 23. 유효성 검사에 클라이언트 측 스크립트 사용?
- 24. 동적 요소에 대한 클라이언트 측 유효성 검사
- 25. 자바 스크립트 클라이언트 측 유효성 검사
- 26. 클라이언트 측 유효성 검사 관련 문제
- 27. 클라이언트 측 유효성 검사를 위해 ErrorMessage 전달
- 28. richfaces 3.3.x 클라이언트 측 유효성 검사
- 29. ASP.NET Razor 페이지 - 클라이언트 측 유효성 검사
- 30. ValidationSummary 클라이언트 측 및 서버 측 유효성 검사
왜 신용 카드 정보를 확인하는 데 자바 스크립트를 사용하고 싶습니까? –
@ gabriel1836에는 신용 카드 번호가 허용되는 숫자 세트에 있는지 알 수있는 알고리즘이 있습니다. 100 % 확인은 아니지만 거의 모든 무작위 실수를 배제합니다. – torial
luhn-10 알고리즘이라고합니다. – mdec