Years ago I found this script and put it on my website to validate email addresses. But now there are email addresses like q.com that can’t register on my site because the script is looking for at least two digits before the “.com” Can someone point out the line I need to change to fix this problem? I looked through it and it’s all Greek to me.
Thanks!
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
var p,i,x;
if(!d) d=document;
if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document;
n=n.substring(0,p);
}
if(!(x=d[n])&&d.all)
x=d.all[n];
for (i=0;!x&&i<d.forms.length;i++)
x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++)
x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById)
x=d.getElementById(n);
return x;
}
function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) {
test=args[i+2];
val=MM_findObj(args[i]);
if (val) {
nm=val.name;
if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) {
if(junkjunk=val.match(/(\\w+[\\w|\\.|-]*\\w+)(@\\w+[\\w|\\.|-]*\\w+\\.\\w{2,4})/)) {
// valid email, do nothing
} else {
errors+='- '+args[i+1]+' must contain a valid e-mail address.\
';
}
}
else if (test!='R') {
num = parseFloat(val);
if (isNaN(val))
errors+='- '+args[i+1]+' must contain a number.\
';
if (test.indexOf('inRange') != -1) {
p=test.indexOf(':');
min=test.substring(8,p);
max=test.substring(p+1);
if (num<min || max<num)
errors+='- '+args[i+1]+' must contain a number between '+min+' and '+max+'.\
';
}
}
}
else if (test.charAt(0) == 'R') {
errors += '- '+args[i+1]+' is a required field\
';
}
}
}
if (errors) alert('Please address the following:\
'+errors);
document.MM_returnValue = (errors == '');
}
//-->
</script>