Validate MasterCard : Credit Card « Regular Expressions « JavaScript Tutorial

JavaScript Tutorial
1. Language Basics
2. Operators
3. Statement
4. Development
5. Number Data Type
6. String
7. Function
8. Global
9. Math
10. Form
11. Array
12. Date
13. Dialogs
14. Document
15. Event
16. Location
17. Navigator
18. Screen
19. Window
20. History
21. HTML Tags
22. Style
23. DOM Node
24. Drag Drop
25. Object Oriented
26. Regular Expressions
27. XML
28. GUI Components
29. Animation
30. MS JScript
Microsoft Office Word 2007 Tutorial
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
C# / C Sharp
C# / CSharp Tutorial
ASP.Net
JavaScript DHTML
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
PHP
Python
SQL Server / T-SQL
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
JavaScript Tutorial » Regular Expressions » Credit Card 
26. 2. 4. Validate MasterCard
 

<html>
    <head>
        <title>MasterCard Example</title>
        <script type="text/javascript">
                function luhnCheckSum(sCardNum) {

                    var iOddSum = 0;
                    var iEvenSum = 0;
                    var bIsOdd = true;

                    for (var i=sCardNum.length-1; i >= 0; i--) {

                        var iNum = parseInt(sCardNum.charAt(i));

                        if (bIsOdd) {
                            iOddSum += iNum;
                        else {
                            iNum = iNum * 2;
                            if (iNum > 9) {
                                iNum = eval(iNum.toString().split("").join("+"));
                            }
                            iEvenSum += iNum;
                        }

                        bIsOdd = !bIsOdd;
                    }

                    return ((iEvenSum + iOddSum10 == 0);
                }

                function isValidMasterCard(sText) {
                    var reMasterCard = /^(5[1-5]\d{2})[\s\-]?(\d{4})[\s\-]?(\d{4})[\s\-]?(\d{4})$/;

                    if (reMasterCard.test(sText)) {

                        var sCardNum = RegExp.$1 + RegExp.$2 + RegExp.$3 + RegExp.$4;

                        return luhnCheckSum(sCardNum);

                    else {
                        return false;
                    }
                }

                function validate() {
                    var oInput1 = document.getElementById("txt1");
                    if (isValidMasterCard(oInput1.value)) {
                        alert("Valid");
                    else {
                        alert("Invalid!");
                    }

                }
        </script>
    </head>
    <body>

        <P>MasterCard Number: <input type="text" id="txt1" /><br />
        <input type="button" value="Validate" onclick="validate()" /></p>

    </body>
</html>
Quote from:
Professional JavaScript for Web Developers
by Nicholas C. Zakas (Author)

# Paperback: 672 pages
# Publisher: Wrox (April 222005)
# Language: English
# ISBN-100764579088
# ISBN-13978-0764579080

        
26. 2. Credit Card
26. 2. 1. Matching a 16 digit credit card number separated by a single space
26. 2. 2. Matching a 16 digit credit card number with variable number of space characters
26. 2. 3. Validate Visa number
26. 2. 4. Validate MasterCard
w_w___w_.__j_a__v___a__2s__.___c___om__ | Contact Us
Copyright 2003 - 08 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.