繁体   English   中英

使用没有正则表达式的 jscript 验证电子邮件地址

[英]Validating email address using jscript without a regular expression

通过实现以下三个规则,我们可以使用 JavaScript 对电子邮件地址进行非常基本的验证:

1.邮箱地址必须有@字符

2.电子邮件地址必须有.(点)字符

3.@和.(点)之间必须至少有2个字符

这满足您陈述的所有规则以及不允许 @ 开始地址并且不允许 . 结束地址。 它不占多个 . 在地址中。

function testEmailAddress(emailToTest) {
    // check for @
    var atSymbol = emailToTest.indexOf("@");
    if(atSymbol < 1) return false;

    var dot = emailToTest.indexOf(".");
    if(dot <= atSymbol + 2) return false;

    // check that the dot is not at the end
    if (dot === emailToTest.length - 1) return false;

    return true;
}

小提琴

``这是有效的......我自己的创作:) 电子邮件验证

<input type=”text” name=”email” id=”email”  />
<input type=”button” name=”btnok” onclick=”validate()” />

Java 脚本函数

   <script type=”text/javascript”>
function validate()
{
var str;
var t=1;
str =document.getElementById(‘email’).value;
if(document.getElementById(‘email’).value==”")
{
alert(“Empty”);

}
var res = str.split(‘@’);
if(str.split(‘@’).length!=2)
{
alert(“zero @ OR morethan one @ “);
t=0;
}
var part1=res[0];
var part2=res[1];

// part1
if(part1.length==0)
{
alert(“no content bfr @”);
t=0;
}
if(part1.split(” “).length>2)
{
alert(“Invalid:Space before @”)
t=0;
}

//chk afr @ content:  part2
var dotsplt=part2.split(‘.’);  //alert(“After @ :”+part2);
if(part2.split(“.”).length<2)
{
alert(“dot missing”);
t=0;
}
if(dotsplt[0].length==0 )
{
alert(“no content b/w @ and dot”);
t=0;
}
if(dotsplt[1].length<2 ||dotsplt[1].length>4)
{alert(“err aftr dot”);
t=0;
}

if(t==1)
alert(“woooooooooooooooooooowwwww…it is a valid email”);

}

</script>

 function validateEmail(email) { var at = email.indexOf("@"); var dot = email.lastIndexOf("\\."); return email.length > 0 && at > 0 && dot > at + 1 && dot < email.length && email[at + 1] !== "." && email.indexOf(" ") === -1 && email.indexOf("..") === -1; } function assert(a, b) { return a == b; } console.log(assert(validateEmail("steve@steve.com"), true)); console.log(assert(validateEmail("steve@steve.co.uk"), true)); console.log(assert(validateEmail("a@a.uk"), true)); console.log(assert(validateEmail("bob.ronald.smith@heroku.co"), true)); console.log(assert(validateEmail("bob.ronald.smith@heroku.co.uk.com"), true)); console.log(assert(validateEmail("UpperCase@ThisIsUP.com"), true)); console.log(assert(validateEmail("steve@.com"), false)); console.log(assert(validateEmail("steve@aaa.com."), false)); console.log(assert(validateEmail("steve@steve"), false)); console.log(assert(validateEmail("@steve.com"), false)); console.log(assert(validateEmail("steve@"), false)); console.log(assert(validateEmail("steve"), false)); console.log(assert(validateEmail("steve@steve..com"), false)); console.log(assert(validateEmail("steve@.steve.com"), false)); console.log(assert(validateEmail("steve@steve..com"), false));

你可以试试这个吗

 var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

if (!filter.test(email.value)) {
      alert('Please provide a valid email address');
var checkEmail = function(value) {

    var valid = true;

    if (value.indexOf('@') == -1) {
        valid = false;
    } else {

        var parts = value.split('@');
        var domain = parts[1];

        if (domain.indexOf('.') == -1) {

            valid = false;

        } else {

            var domainParts = domain.split('.');
            var ext = domainParts[1];

            if (ext.length > 4 || ext.length < 2) {

                valid = false;
            }
        }

    }


    return valid;

};

var form = document.getElementById('test');

var validate = function(event) {
    event.preventDefault();
    var val = document.getElementById('email').value;
    var valid = checkEmail(val);

    if (!valid) {

        alert('Not a valid e-mail address');
    } else {

        alert('Valid e-mail address');

    }
};

form.addEventListener('submit', validate, false);

有许多验证电子邮件地址的技术,每种验证方法都有其优缺点。 上述方法不需要理解正则表达式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM