~ubuntu-branches/ubuntu/trusty/libcommons-validator-java/trusty

« back to all changes in this revision

Viewing changes to src/javascript/org/apache/commons/validator/javascript/validateEmail.js

  • Committer: Bazaar Package Importer
  • Author(s): Arnaud Vandyck
  • Date: 2004-11-19 13:35:53 UTC
  • Revision ID: james.westby@ubuntu.com-20041119133553-qtl7whjkjv9q1rbd
Tags: upstream-1.3
ImportĀ upstreamĀ versionĀ 1.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
   /*$RCSfile: validateEmail.js,v $ $Revision: 1.9 $ $Date: 2004/03/28 16:53:21 $ */
 
3
    /**
 
4
    * Check to see if fields are a valid email address.
 
5
    * Fields are not checked if they are disabled.
 
6
    * <p>
 
7
    * @param form The form validation is taking place on.
 
8
    */
 
9
    function validateEmail(form) {
 
10
        var bValid = true;
 
11
        var focusField = null;
 
12
        var i = 0;
 
13
        var fields = new Array();
 
14
        var formName = form.getAttributeNode("name");
 
15
 
 
16
 
 
17
        oEmail = eval('new ' + formName.value + '_email()');
 
18
 
 
19
        for (x in oEmail) {
 
20
            var field = form[oEmail[x][0]];
 
21
            if ((field.type == 'hidden' || 
 
22
                 field.type == 'text' ||
 
23
                 field.type == 'textarea') &&
 
24
                (field.value.length > 0) &&
 
25
                field.disabled == false) {
 
26
                if (!checkEmail(field.value)) {
 
27
                    if (i == 0) {
 
28
                        focusField = field;
 
29
                    }
 
30
                    fields[i++] = oEmail[x][1];
 
31
                    bValid = false;
 
32
                }
 
33
            }
 
34
        }
 
35
        if (fields.length > 0) {
 
36
            focusField.focus();
 
37
            alert(fields.join('\n'));
 
38
        }
 
39
        return bValid;
 
40
    }
 
41
 
 
42
    /**
 
43
     * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
 
44
     * http://javascript.internet.com
 
45
     */
 
46
    function checkEmail(emailStr) {
 
47
       if (emailStr.length == 0) {
 
48
           return true;
 
49
       }
 
50
       var emailPat=/^(.+)@(.+)$/;
 
51
       var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
 
52
       var validChars="\[^\\s" + specialChars + "\]";
 
53
       var quotedUser="(\"[^\"]*\")";
 
54
       var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
 
55
       var atom=validChars + '+';
 
56
       var word="(" + atom + "|" + quotedUser + ")";
 
57
       var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
 
58
       var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
 
59
       var matchArray=emailStr.match(emailPat);
 
60
       if (matchArray == null) {
 
61
           return false;
 
62
       }
 
63
       var user=matchArray[1];
 
64
       var domain=matchArray[2];
 
65
       if (user.match(userPat) == null) {
 
66
           return false;
 
67
       }
 
68
       var IPArray = domain.match(ipDomainPat);
 
69
       if (IPArray != null) {
 
70
           for (var i = 1; i <= 4; i++) {
 
71
              if (IPArray[i] > 255) {
 
72
                 return false;
 
73
              }
 
74
           }
 
75
           return true;
 
76
       }
 
77
       var domainArray=domain.match(domainPat);
 
78
       if (domainArray == null) {
 
79
           return false;
 
80
       }
 
81
       var atomPat=new RegExp(atom,"g");
 
82
       var domArr=domain.match(atomPat);
 
83
       var len=domArr.length;
 
84
       if ((domArr[domArr.length-1].length < 2) ||
 
85
           (domArr[domArr.length-1].length > 3)) {
 
86
           return false;
 
87
       }
 
88
       if (len < 2) {
 
89
           return false;
 
90
       }
 
91
       return true;
 
92
    }
 
93
 
 
94
  
 
 
b'\\ No newline at end of file'