coldfusion中的cfscript电子邮件验证

时间:2012-08-22 20:10:23

标签: validation coldfusion coldfusion-9

我正在尝试在我的cfscript标记中使用这段代码。我已经进行了搜索和搜索,但有些东西可用于验证电子邮件地址。

如果电子邮件地址为空,则会返回错误消息,但如果我只输入字符,则会让它通过。

我对CF中的脚本非常陌生,所以任何帮助都会受到赞赏。

if (isDefined("form.email"))
            {
                if (form.email is "")
                    {
                        errormessageemail = "Please enter a valid Email Address!";
                    }
                else if (not form.email is "")
                    {
                        email = form.email;
                        function validate_email(str,email) {
                        if( not len(trim(arguments.str)) or not refind("^[0-9A-Za-z.'+_-]+@([0-9A-Za-z-]+\.)+[A-Za-z]+$", trim(arguments.str)) ) {
                            errormessageemail = "Please enter a valid Email Address! Ex. abc@abc.com";
                            }
                        return errormessageemail;
                        }
                    }
            }

3 个答案:

答案 0 :(得分:8)

可能就是这么简单:

if (StructKeyExists(form, "email") AND NOT isValid("email", form.email)) {
    errormessageemail = "Please enter a valid Email Address!";
}

您不验证是否未发布电子邮件。空白字符串不是有效的电子邮件,无需特别检查。

注意:有人可能会认为isValid / email无法100%正常运行。这是真的,但很少见。如果您也这么认真,请使用正则表达式。

答案 1 :(得分:1)

以下是我用于检查电子邮件有效性的代码:

LOCAL.Email = trim(lCase(ARGUMENTS.Email));
LOCAL.IsValid = reFindNoCase("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$", LOCAL.Email);

您应该使用structKeyExists测试您的表单,而不是像其他响应者建议的那样测试isDefined。 structKeyExists函数在特定范围内搜索变量。 isDefined搜索任何范围。

if (StructKeyExists(form, "email") AND NOT isValid("email", form.email)) {
    errormessageemail = "Please enter a valid Email Address!";
}

答案 2 :(得分:0)

要检查电子邮件地址是否有效

 <cfif  isValid("email", #Form.email#) >
    <cfoutput>Email Address is valid</cfoutput>
<cfelse>
   <cfoutput>Email Address is invalid</cfoutput>
</cfelse>