2
/*$RCSfile: validateEmail.js,v $ $Revision: 1.9 $ $Date: 2004/03/28 16:53:21 $ */
4
* Check to see if fields are a valid email address.
5
* Fields are not checked if they are disabled.
7
* @param form The form validation is taking place on.
9
function validateEmail(form) {
11
var focusField = null;
13
var fields = new Array();
14
var formName = form.getAttributeNode("name");
17
oEmail = eval('new ' + formName.value + '_email()');
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)) {
30
fields[i++] = oEmail[x][1];
35
if (fields.length > 0) {
37
alert(fields.join('\n'));
43
* Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
44
* http://javascript.internet.com
46
function checkEmail(emailStr) {
47
if (emailStr.length == 0) {
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) {
63
var user=matchArray[1];
64
var domain=matchArray[2];
65
if (user.match(userPat) == null) {
68
var IPArray = domain.match(ipDomainPat);
69
if (IPArray != null) {
70
for (var i = 1; i <= 4; i++) {
71
if (IPArray[i] > 255) {
77
var domainArray=domain.match(domainPat);
78
if (domainArray == null) {
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)) {
b'\\ No newline at end of file'