/*
* Copyright 2002-2006,2009 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.opensymphony.xwork2.validator.validators;
/**
* <!-- START SNIPPET: javadoc -->
* EmailValidator checks that a given String field, if not empty,
* is a valid email address.
* <p/>
* <p/>
* The regular expression used to validate that the string is an email address
* is:
* </p>
* <pre>
* \\b(^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-])+((\\.com)|(\\.net)|(\\.org)|(\\.info)|(\\.edu)|(\\.mil)|(\\.gov)|(\\.biz)|(\\.ws)|(\\.us)|(\\.tv)|(\\.cc)|(\\.aero)|(\\.arpa)|(\\.coop)|(\\.int)|(\\.jobs)|(\\.museum)|(\\.name)|(\\.pro)|(\\.travel)|(\\.nato)|(\\..{2,3})|(\\..{2,3}\\..{2,3}))$)\\b
* </pre>
* <!-- END SNIPPET: javadoc -->
*
*
* <!-- START SNIPPET: parameters -->
* <ul>
* <li>fieldName - The field name this validator is validating. Required if using Plain-Validator Syntax otherwise not required</li>
* </ul>
* <!-- END SNIPPET: parameters -->
*
*
* <pre>
* <!-- START SNIPPET: example -->
* <!-- Plain Validator Syntax -->
* <validators>
* <validator type="email">
* <param name="fieldName">myEmail</param>
* <message>Must provide a valid email</message>
* </validator>
* </validators>
*
* <!-- Field Validator Syntax -->
* <field name="myEmail">
* <field-validator type="email">
* <message>Must provide a valid email</message>
* </field-validator>
* </field>
* <!-- END SNIPPET: example -->
* </pre>
*
* @author jhouse
* @author tm_jee
* @version $Date$ $Id$
*/
public class EmailValidator extends RegexFieldValidator {
// see XW-371
public static final String emailAddressPattern =
"\\b(^['_A-Za-z0-9-]+(\\.['_A-Za-z0-9-]+)*@([A-Za-z0-9-])+(\\.[A-Za-z0-9-]+)*((\\.[A-Za-z0-9]{2,})|(\\.[A-Za-z0-9]{2,}\\.[A-Za-z0-9]{2,}))$)\\b";
public EmailValidator() {
setExpression(emailAddressPattern);
setCaseSensitive(false);
}
}