gov.nih.nci.cabig.caaers.validation.fields.validators.PhoneNumberValidator.java Source code

Java tutorial

Introduction

Here is the source code for gov.nih.nci.cabig.caaers.validation.fields.validators.PhoneNumberValidator.java

Source

/*******************************************************************************
 * Copyright SemanticBits, Northwestern University and Akaza Research
 * 
 * Distributed under the OSI-approved BSD 3-Clause License.
 * See http://ncip.github.com/caaers/LICENSE.txt for details.
 ******************************************************************************/
package gov.nih.nci.cabig.caaers.validation.fields.validators;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.lang.StringUtils;

/**
 * 
 * @author Biju Joseph
 * @author Ion
 * @author Karthik Iyer
 */
public class PhoneNumberValidator extends FieldValidator<PhoneNumberConstraint, Object> {

    @Override
    public boolean isValid(Object fieldValue) {
        String strVal = stringValue(fieldValue);
        if (StringUtils.isEmpty(strVal))
            return true; // valid.
        String regex = "^(\\+?\\d{10,11}|((\\+)?\\d[-\\.])?(((\\d{3}[-\\.]){2}\\d{4}))|((\\+)?\\d)?((\\(\\d{3}[\\)][-\\.]?\\d{3}[-\\.]?\\d{4})))(x\\d+)?$";
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(strVal);
        return m.matches();
    }

    @Override
    public String getMessagePrefix() {
        return "Invalid";
    }

    public String getValidatorCSSClassName() {
        return "US_PHONE_NO";
    }

}
// http://tools.netshiftmedia.com/regexlibrary/#
// \d{10}|\d{11}|((\+)?\d[-\.])?((\d{3}[-\.]\d{3}[-\.]\d{4}))|((\+)?\d)?((\d{3}[-\.]\d{3}[-\.]\d{4}))
// ^(\d{10,11}|((\+)?\d[-\.])?(((\d{3}[-\.]){2}\d{4}))|((\+)?\d)?((\(\d{3}[\)]\d{3}[-\.]?\d{4})))x[\d]+$
// ^(\d{10,11}|((\+)?\d[-\.])?(((\d{3}[-\.]){2}\d{4}))|((\+)?\d)?((\(\d{3}[\)]\d{3}[-\.]?\d{4})))(x\d+)?$