Email validator not allowing '.' in email address before '@'

G

gullyou

Sorry I crossposted this to java group. Didn't know distinction
between Java & Javascript

Hi,


I'm not a Java script programmer but have this web page with a form
form that
includes a field to input an email address. My problem is that the
validator won't allow addresses that include a '.' before the @ sign to

be entered (such as (e-mail address removed))


It seems like (3>intIsDOT-intIsAT) || (4>intLengthA-intIsDOT)){


may be causing the problem. Anyone have an idea that will allow me to
screen out invalid addresses but still allow a . before the @? I would

like to continue using the same script, only modified to allow the '.'
if possible.


Here's the portion of the script that seems to be involved:


function fnEmailValidation(oTag){
var intLengthA= oTag.value.length;
var intIsAT = oTag.value.indexOf("@");
var intIsDOT = oTag.value.indexOf(".");
if (intLengthA<6 || intIsAT<1 ||
(3>intIsDOT-intIsAT) ||
(4>intLengthA-intIsDOT)){
return false;
}
var
strTextAfterDot=oTag.value.substring(intIsDOT+1,intLengthA);
intLengthA= strTextAfterDot.length;
for (var x=0;x<intLengthA;x++){
if
(isNaN(strTextAfterDot.substring(x,x+1))==true) return true;
}
return false;
}
 
T

Thomas 'PointedEars' Lahn

[...]
I'm not a Java script programmer

I am not either, since there is no "Java script".
but have this web page with a form form that includes a field to input an
email address. My problem is that the validator won't allow addresses
that include a '.' before the @ sign to

be entered (such as (e-mail address removed))

Your example address does not conform to RFC2822, the algorithm would
rightfully refuse it.
It seems like (3>intIsDOT-intIsAT) || (4>intLengthA-intIsDOT)){


may be causing the problem. Anyone have an idea that will allow me to
screen out invalid addresses but still allow a . before the @? [...]

[overly complicated inefficient code that I refuse to review]

Ever heard of Regular Expressions? Supported since IE3 (August 1996),
NN4 (June 1997).


PointedEars
 
G

gullyou

Thanks, PointedEars. No, I haven't heard of regular expressions. This
isn't my script and it does seem more complicated than other email
validator scripts I've seen on the web. I'm not a web programmer, I
just generally modify existing stuff to come up with what I want if I
need to do something I don't know how to do.

Not being a programmer, I wouldn't necessarily be able to distinguish
the necessary from the unnecessarily complicated. My attempts at
modifying the script have all resulted in the form accepting ANYTHING
in the email address field, unfortunately.

Thanks for the links. I'll do some more looking, and maybe your
reference to "regular expressions" will lead me to something useful.

No big deal. Someone's going to take care of this problem, even if it
isn't me. It's not exactly my webpage, after all.

Thanks again.
 
M

McKirahan

Sorry I crossposted this to java group. Didn't know distinction
between Java & Javascript

Hi,


I'm not a Java script programmer but have this web page with a form
form that
includes a field to input an email address. My problem is that the
validator won't allow addresses that include a '.' before the @ sign to

be entered (such as (e-mail address removed))


It seems like (3>intIsDOT-intIsAT) || (4>intLengthA-intIsDOT)){


may be causing the problem. Anyone have an idea that will allow me to
screen out invalid addresses but still allow a . before the @? I would

like to continue using the same script, only modified to allow the '.'
if possible.


Here's the portion of the script that seems to be involved:


function fnEmailValidation(oTag){
var intLengthA= oTag.value.length;
var intIsAT = oTag.value.indexOf("@");
var intIsDOT = oTag.value.indexOf(".");
if (intLengthA<6 || intIsAT<1 ||
(3>intIsDOT-intIsAT) ||
(4>intLengthA-intIsDOT)){
return false;
}
var
strTextAfterDot=oTag.value.substring(intIsDOT+1,intLengthA);
intLengthA= strTextAfterDot.length;
for (var x=0;x<intLengthA;x++){
if
(isNaN(strTextAfterDot.substring(x,x+1))==true) return true;
}
return false;
}

Will this help?

<html>
<head>
<title>EmailValidation.htm</title>
<script type="text/javascript">
function fnFormValidation(that) {
var oTag = that.Email;
if (!fnEmailValidation(oTag)) return false;
return true;
}
function fnEmailValidation(oTag) {
var regx = /^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$/;
if (oTag.value.length == 0) {
alert("Email is missing!");
} else if (!regx.test(oTag.value)) {
alert("Email is invalid!");
}
}
</script>
</head>
<body>
<form name="form1" onsubmit="return fnFormValidation(this)">
<input type="text" name="Email" size="50" maxlength="50">
<input type="submit" value="Submit">
</form>
</body>
</html>
 
D

Dr John Stockton

JRS: In article <[email protected]>, dated
Thu, 22 Dec 2005 14:04:15 local, seen in
McKirahan said:
Will this help?
function fnFormValidation(that) {
var oTag = that.Email;
if (!fnEmailValidation(oTag)) return false;
return true;
}
function fnEmailValidation(oTag) {
var regx = /^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$/;
if (oTag.value.length == 0) {
alert("Email is missing!");
} else if (!regx.test(oTag.value)) {
alert("Email is invalid!");
}
}

Reposting stale code that you've found somewhere, or writing code that
looks like that, is no help to anyone.

That code only allows TLDs of two or three characters.

It also does not allow on the left at least one character, $, which I
know to be valid.

Normally, one would expect a validation function to return a value.

OP : see <URL:http://www.merlyn.demon.co.uk/js-valid.htm>.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,011
Latest member
AjaUqq1950

Latest Threads

Top